6

同志、誰か助けてくれませんか。エンティティ フレームワーク 5 には ApplyCurrentValues() メソッドがないようです。エンティティ フレームワーク v5 でデータベース オブジェクトを更新する別の方法はありますか。これがやろうとしていることです

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

しかし、 ApplyCurrentValues()行でコンパイルエラーが発生しています

4

1 に答える 1

15

ApplyCurrentValuesObjectContextAPI メソッドであるため、最初に でラップされている objectcontext にアクセスする必要がありますDbContext

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

ラップされたコンテキストには「Accounts」などのメンバーがないため、ObjectContextメソッド自体を使用する必要があることに注意してください。

ただし、DbContext API を使用して同じことができます。

var sourceAcc = new Account { AccountID = account.AccountID });
odc.Entry(account).CurrentValues.SetValues(sourceAcc);
于 2013-01-29T12:42:32.690 に答える