2012-06-14 10 views
5

Ich habe meine EntityModel auf 4.3 mit NuGet aktualisiert.'ObjectContext' enthält keine Definition für 'Entry' und keine Erweiterungsmethode 'Entry'

Jetzt möchte ich meine EntityObject.State ändern, aber es kann die .Entry() Methode nicht finden.

Der aktuelle Status ist Deleted.

Dies ist, was ich tun möchte:

someObjectContext.Entry(someEntityObject).State = EntityState.Unchanged;

Die referances zu EntityFramework und EntityFramework.Extended hinzugefügt werden.

Also, was fehlt mir?

EDIT

Mein NuGet Ausgang:

PM> Install-Package EntityFramework -Version 4.3.1 
'EntityFramework 4.3.1' already installed. 
Data already has a reference to 'EntityFramework 4.3.1'. 

Antwort

13

Sie ObjectContext verwenden, die nicht die Entry Methode hat. Sie müssten DbContext verwenden, das ist ein Wrapper um ObjectContext mit zusätzlichen Methoden, hinzugefügt in EF 4.3 4.1 (Korrektur dank Slauma) soweit ich mich erinnere - auch gibt es eine Möglichkeit, die ObjectContext von DbContext bei Bedarf zu extrahieren:

ObjectContext context = ((IObjectContextAdapter)yourDbContext).ObjectContext; 

Hier andersrum:

DbContext context = new DbContext(yourObjectContext, true); //or false, depends what you want 

hier ein link an den Konstruktor.

+0

hinzugefügt in EF 4.1 ... – Slauma

+0

@Slauma Danke für die Korrektur, Bearbeitung jetzt ... :) –

+0

@ Trustme-I'maDoctor Danke für die Hilfe. Arbeiten perfekt! =) – Willem

Verwandte Themen