0

好吧,我正在使用 MVC3 和 EF4,一切都很好......除非我必须更新一个对象但不是它的所有属性。

到目前为止,它的实现方式如下:我有一个类、它的属性和一个在我的 DbContext 上的 DbSet。我的页面正在发回一个带有该对象所有值的 JSon(包括我想要更新的那些和我想要保持不变的那些)。在控制器上,我正在接收对象并将其状态更改为 EntityState.Modified 并调用 DbContext 的 SaveChanges()。

正如我所说,一切都很好,但我确实希望该 JSon 接收到的一些值被丢弃,而它们的值在数据库中时保持不变。

我怎样才能做到这一点?

在此先感谢您的帮助...

4

2 回答 2

1

不确定您的代码,但是当您只想在对 EF 的更新调用中更新某些属性时,您应该这样做......

db.Person.Attach(person);
db.Entry(person).Property(x => x.Name).IsModified = true;
db.SaveChanges();

因此,您将修改您想要的任何属性,而不管您不需要的属性。

于 2013-07-04T02:47:10.567 回答
0

你也可以试试这个..

using (DBContext newCtx = new DBContext())
{
     newCtx.Employee.Attach(emp);
     newCtx.ObjectStateManager.ChangeObjectState(emp, System.Data.EntityState.Modified);
     newCtx.SaveChanges();
}

参考:在实体框架中更新实体

于 2013-07-04T03:45:38.943 回答