最佳答案
我一直在探索在ASP.NETMVC3环境中在Entity Framework 5中编辑/更新记录的不同方法,但到目前为止,它们都没有勾选我需要的所有框。我将解释为什么。
我找到了三种方法,我会提到它们的优点和缺点:
方法1-加载原始记录,更新每个属性
var original = db.Users.Find(updatedUser.UserId);
if (original != null){original.BusinessEntityId = updatedUser.BusinessEntityId;original.Email = updatedUser.Email;original.EmployeeId = updatedUser.EmployeeId;original.Forename = updatedUser.Forename;original.Surname = updatedUser.Surname;original.Telephone = updatedUser.Telephone;original.Title = updatedUser.Title;original.Fax = updatedUser.Fax;original.ASPNetUserId = updatedUser.ASPNetUserId;db.SaveChanges();}
优点
缺点
方法2-加载原始记录,设置更改的值
var original = db.Users.Find(updatedUser.UserId);
if (original != null){db.Entry(original).CurrentValues.SetValues(updatedUser);db.SaveChanges();}
优点
缺点
方法3-将更新的记录和设置状态附加到EntityState。
db.Users.Attach(updatedUser);db.Entry(updatedUser).State = EntityState.Modified;db.SaveChanges();
优点
缺点
问题
我的问题是:有没有一种干净的方法可以实现这一系列目标?
我知道这是一个很小的问题,但我可能会错过一个简单的解决方案。如果不是方法,一个将占上风;-)