'ObjectContext' does not contain a definition for 'Entry' and no extension method 'Entry'

.net, c#, entity-framework-4.1

Solution

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.

Problem

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'. ```

Original source