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

本文关键字:Entry 扩展 方法 ObjectContext 包含 定义 | 更新日期: 2023-09-27 18:37:14

我使用 NuGetEntityModel升级到版本 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”的定义,也没有扩展方法“Entry”

您正在使用没有 Entry 方法的 ObjectContext 。据我所知,您必须使用 DbContext ,它是在 EF 4.3 4.1 中添加的其他方法的包装ObjectContext器(感谢 Slauma 的更正) - 还有一种方法可以在需要时从DbContext中提取ObjectContext

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

这是相反的方法:

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

下面是构造函数的链接。