2012-01-22 20 views
12

我試圖在Entity Framework 4的數據庫上下文中調用它時遇到「無法解析符號ObjectStateManager」的錯誤。我找不到其他人遇到此問題。我嘗試過使用System.DataSystem.Data.Objects無法解析符號ObjectStateManager

是否存在爲了使用ObjectStateManager而需要創建的特定實體框架?還是我缺少某種安裝包?我正在使用數據庫第一實體框架。

這裏是代碼它給我的錯誤:(7號線)

[HttpPost] 
     public ActionResult EditProfile(User user) 
     { 
      if (ModelState.IsValid) 
      { 
       db.Users.Attach(user); 
       db.ObjectStateManager.ChangeObjectState(user, EntityState.Modified); 
       db.SaveChanges(); 
      } 
      return RedirectToAction("Profile"); 
     } 

回答

28

我相信你找到一個解決方案通過,但現在我剛纔碰到了同樣的問題,並能夠通過改變來解決它EntityState線以下:

db.Entry(user).State = EntityState.Modified; 
+2

從EF5升級到EF6,這對我有用。 – sobelito

0

你添加了System.Data.Entity裝配到項目?

另外System.Data.Objects是正確的。

+0

由於我使用的是Resharper,它表示兩個都沒有被使用,即使它們被添加。 – Rizowski

13

可能您使用的是代碼優先EF。在這種情況下,你必須恢復你的代碼IObjectContextAdapter明確implemenatation,即

((IObjectContextAdapter)db).ObjectContext.ObjectStateManager 
+1

我使用數據庫第一,我很傷心地說,也沒有工作。 – Rizowski

+0

我正在使用EF 5.0,這對我有用 –

+0

謝謝,這對我很有用。我還需要添加命名空間:System.Data.Entity.Infrastructure; – Cesar

0

一個額外的項目,檢查的是該項目的目標.NET框架設置爲.NET 4+。

+0

這可能會發布爲評論,或更具體。 – DontVoteMeDown