我使用EntityModel
将4.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'.
答案 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。