我正在使用 MVC 在 C# 中为用户的个人资料创建一个编辑页面。与这类页面一样,我从数据库中获取信息并将其显示在表单中,并让用户根据自己的喜好更改字段。
验证后,我显然想将数据提交回数据库,这就是我无法弄清楚的事情发生的地方。
如果我通过私有字段分配新值,则不会将任何内容提交到数据库,如果我使用属性访问器,则确实会提交值。
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;
}
}
}
老实说,我不知道为什么这会有所作为?