‘ObjectContext’不包含’Entry’的定义,也没有扩展方法’Entry’
我使用NuGet
将我的EntityModel
升级到版本4.3
。
现在我想更改我的EntityObject.State
,但它无法找到.Entry()
方法。
当前状态为Deleted
。
这就是我想要做的:
someObjectContext.Entry(someEntityObject).State = EntityState.Unchanged;
添加了EntityFramework和EntityFramework.Extended的参考。
那么,我错过了什么?
编辑
我的NuGet
输出:
PM> Install-Package EntityFramework -Version 4.3.1 'EntityFramework 4.3.1' already installed. Data already has a reference to 'EntityFramework 4.3.1'.
您正在使用ObjectContext
,它没有Entry
方法。 你必须使用DbContext
,它是ObjectContext
一个包装器,附带有其他方法,在EF 4.3 4.1中添加(由于Slauma校正),据我记得 – 还有一种方法可以在需要时从DbContext
提取ObjectContext
:
ObjectContext context = ((IObjectContextAdapter)yourDbContext).ObjectContext;
这是另一种方式:
DbContext context = new DbContext(yourObjectContext, true); //or false, depends what you want
这是构造函数的链接 。