Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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'.
like image 317
Willem Avatar asked Jun 14 '12 12:06

Willem


1 Answers

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.

like image 95
Patryk Ćwiek Avatar answered Nov 02 '22 23:11

Patryk Ćwiek