gpt4 book ai didi

c# - 使用 Linq-2-Sql : Editing private fields doens't trigger update, 编辑公共(public)属性进行更新。为什么?

转载 作者:太空宇宙 更新时间:2023-11-03 23:23:30 25 4
gpt4 key购买 nike

我正在使用 MVC 在 C# 中为用户配置文件创建一个编辑页面。对于这类页面,我从数据库中获取信息并将其显示在表单中,然后让用户根据自己的喜好更改字段。

验证后,我显然想将数据提交回数据库,而这正是我无法弄清楚的地方。

如果我通过私有(private)字段分配新值,则不会向数据库提交任何内容,如果我使用属性访问器,则不会提交值。

public partial class User {
public static bool Edit(User update) {
try {
using (var db = new DataClassesBabysitterDataContext()) {
User old = db.Users.Single(u => u.Id == update.Id);

// This works
// -------------------------------------
old.Description = update.Description;

// This does not
// -------------------------------------
old._Description = update._Description

db.SubmitChanges();
}

return true;
}
catch (Exception e) {
DBLogger.LogException(e);
return false;
}
}
}

老实说,我不知道为什么这会有所作为?

最佳答案

Linq2SQL 使用 INotifyPropertyChanged 和属性 setter 中的事件来了解实例已更改。使用新值设置属性会触发事件,因此允许跟踪代码知道它。更改字段不会。

关于c# - 使用 Linq-2-Sql : Editing private fields doens't trigger update, 编辑公共(public)属性进行更新。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34578331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com