2009-01-16 41 views
11

試圖在這裏得到一個處理實體框架的處理,我碰到一些減速帶... 我有一個Get()方法,工作正常,並已經過測試,但我的刪除方法是行不通的:錯誤:該對象無法刪除,因爲它沒有在ObjectStateManager中找到

public static void Delete(string name) 
    { 
     J1Entities db = new J1Entities(); 
     db.DeleteObject(Get(name)); 
     db.SaveChanges(); 
    } 

,但我得到了以下錯誤: 錯誤:對象不能刪除,因爲它沒有在ObjectStateManager找到。

我運行了調試器,並且DeleteObject中的對象是正確的......我錯過了什麼?謝謝。

回答

16

每個EF對象都與創建它的經理緊密關聯(因爲想要更好的單詞)。或與之相關聯的信息。由於您不通過db到您的Get方法,我假設Get已使用它自己J1Entities,或該對象已創建獨立(可能反序列化)。

爲了刪除它,它必須知道它第一個。這可能通過附加的目的是經理的意思是 - 但在這種情況下,這似乎是一個更簡單的選項只是爲了打發dbGet,使Get在同樣的情況下完成(因爲db會自動連接對象它創建自己)。

+0

完美... 我覺得這是簡單的東西... :) – naspinski 2009-01-16 07:30:31

相關問題