2012-06-14 76 views
5

我使用NuGet將我的EntityModel升級到版本4.3'ObjectContext'不包含'Entry'的定義並且沒有擴展方法'Entry'

現在我想改變我的EntityObject.State,但它找不到.Entry()方法。

當前狀態爲Deleted

這就是我想要做的:

someObjectContext.Entry(someEntityObject).State = EntityState.Unchanged;

到的EntityFramework和EntityFramework.Extended的referances添加。

那麼,我錯過了什麼?

編輯

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'. 

回答

13

您使用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 

這裏有一個link來構造。

+0

在EF 4.1中添加... – Slauma

+0

@Slauma感謝您的糾正,現在正在編輯... :) –

+0

@ Trustme-I'maDoctor感謝您的幫助。完美的工作! =) – Willem

相關問題