我有一个接收包含更新值的项目列表的操作方法,问题是我只想更新几个字段(电子邮件或电话)而不是完整记录。下面的代码似乎可以满足我的需要,但是是否有更好或更新的方法来使用 EF 5 来做到这一点?我有时会看到人们使用 .Find 而不是 Attach 等。
public ActionResult Update(IEnumerable<GenericTable> items)
{
using (var gEntities = new genericEntities())
{
foreach (var GenericTable in items)
{
gEntities.GenericTable.Attach(GenericTable);
gEntities.Entry(GenericTable).Property(x => x.EmailAddress).IsModified = true;
gEntities.Entry(GenericTable).Property(x => x.PhoneNumber).IsModified = true;
}
gEntities.SaveChanges();
}
在这里,我明确告诉 EF 电子邮件地址和电话号码每次都被修改,但实际上它会一个或另一个,有没有办法只检测修改的列/属性?
谢谢