仅更新项目的已修改字段

时间:2015-08-25 14:35:23

标签: c# entity-framework-6

我的Car实体具有以下属性:

Name,
Color, 
CreationDate

我正在使用此代码更新我的Car项目:

using (MyContextEntities db = new MyContextEntities())
{
     db.Entry(Car).State = EntityState.Modified;
     db.SaveChanges();
}

但是,当用户仅更新Name项的ColorCar时,项CreationDate将变为“0001/01/01”。

如何告诉EF只更新修改后的字段并保留那些未经修改的字段?

1 个答案:

答案 0 :(得分:1)

你可以去:

using (MyContextEntities db = new MyContextEntities())
{
     db.Entry(Car).State = EntityState.Modified;
     db.Entry(model).Property(x => x.CreationDate).IsModified=false;
     db.SaveChanges();
}

或者您可以考虑使用仅包含要修改的属性的ViewModel。