Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't get the ApplyCurrentValues(Entity) to work in Entity Framework 5

Comrades, can anyone help me out here, entity framework 5 seems not to have ApplyCurrentValues() method. Is there another way to update the database object in entity framework v5. here is what am trying to do

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

But i have been getting compile error in the ApplyCurrentValues() line

like image 658
Cizaphil Avatar asked Jan 29 '13 09:01

Cizaphil


1 Answers

ApplyCurrentValues is an ObjectContext API method, so first you have to gain access to the objectcontext that is wrapped in the DbContext:

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

Note that the wrapped context does not have members like "Accounts", so you have to use the ObjectContext method itself.

But you can do the same using the DbContext API:

var sourceAcc = new Account { AccountID = account.AccountID });
odc.Entry(account).CurrentValues.SetValues(sourceAcc);
like image 71
Gert Arnold Avatar answered Sep 21 '22 07:09

Gert Arnold