无法使ApplyCurrentValues(Entity)在Entity Framework 5中工作

时间:2013-01-29 09:30:48

标签: c# entity-framework-5 .net-4.5

同志们,任何人都可以帮助我,实体框架5似乎没有ApplyCurrentValues()方法。是否有另一种方法来更新实体框架v5中的数据库对象。这是我想做的事情

odc.Accounts.Attach(new Account { AccountID = account.AccountID });
  odc.Accounts.ApplyCurrentValues(account);
  odc.SaveChanges();

但是我在 ApplyCurrentValues()行中遇到了编译错误

1 个答案:

答案 0 :(得分:13)

ApplyCurrentValuesObjectContext API方法,因此首先您必须访问包含在DbContext中的objectcontext:

odc.Accounts.Attach(new Account { AccountID = account.AccountID });
((IObjectContextAdapter)odc).ObjectContext
    .ApplyCurrentValues("Accounts", account);
odc.SaveChanges();

请注意,已包装的上下文没有“帐户”等成员,因此您必须使用ObjectContext方法本身。

但您可以使用DbContext API执行相同的操作:

var sourceAcc = new Account { AccountID = account.AccountID });
odc.Entry(account).CurrentValues.SetValues(sourceAcc);