'ObjectContext'不包含'Entry'的定义,也没有扩展方法'Entry'

时间:2012-06-14 12:05:02

标签: c# .net entity-framework-4.1

我使用EntityModel4.3升级为版本NuGet

现在我要更改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'.

1 个答案:

答案 0 :(得分:14)

您使用的是ObjectContext,其中没有Entry方法。你必须使用DbContext,这是一个ObjectContext的包装器和其他方法,在EF 4.3 4.1中添加(由于Slauma的纠正),据我记得 - 还有一种方法可以在需要时从ObjectContext中提取DbContext

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

这是另一种方式:

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

这是构造函数的link