问题
I upgraded my EntityModel
to version 4.3
using NuGet
.
Now i want to change my EntityObject.State
, but it cant find the .Entry()
method.
The current state is Deleted
.
This is what i want to do:
someObjectContext.Entry(someEntityObject).State = EntityState.Unchanged;
The referances to EntityFramework and EntityFramework.Extended are added.
So, what am i missing?
EDIT
My NuGet
output:
PM> Install-Package EntityFramework -Version 4.3.1
'EntityFramework 4.3.1' already installed.
Data already has a reference to 'EntityFramework 4.3.1'.
回答1:
You're using ObjectContext, which does not have the Entry
method. You'd have to use DbContext, which is a wrapper around ObjectContext
with additional methods, added in EF 4.3 4.1(correction thanks to Slauma) as far as I remember - also there's a way to extract the ObjectContext
from DbContext
when needed:
ObjectContext context = ((IObjectContextAdapter)yourDbContext).ObjectContext;
Here's the other way around:
DbContext context = new DbContext(yourObjectContext, true); //or false, depends what you want
Here's a link to the constructor.
来源:https://stackoverflow.com/questions/11032683/objectcontext-does-not-contain-a-definition-for-entry-and-no-extension-metho