我試圖刪除一個對象使用EntityFramework 5,但我得到這個錯誤。 該對象無法刪除,因爲它在ObjectStateManager中找不到
我正在使用Remove()
方法,因爲DeleteObject()
不存在於EF5中。 任何人都可以幫助我失去什麼?該對象無法刪除,因爲它沒有在實體框架中的ObjectStateManager中找到5
這不適用於刪除
localDb.Customers.Remove(new Customer() { CustomerId = id });
localDb.SaveChanges();
另一件事我從MSDN試圖將狀態改爲已刪除工作。但是這裏給出了一個錯誤,說明所有的字段都應該存在。是否有必要獲得完整的記錄然後刪除?
var customer = new Customer(){ CustomerId = id };
localDb.Customers.Attach(customer);
localDb.Entry(customer).State = EntityState.Deleted;
localDb.SaveChanges();
任何輸入?
感謝Nicholas,只是爲了改進我的概念,爲什麼在EF端而不是在SQL端進行驗證?這是一個命中的唯一方法,因爲這個設置似乎對我來說很重要...如果有任何不正確的請糾正我。 – 2013-03-26 13:47:37
到目前爲止,這是唯一的答案,我相信沒有造成2次前往Db。因此將其標記爲性能方面的答案。 – 2013-07-08 13:01:54
northwind.Entry(entity).State = System.Data.Entity.EntityState.Deleted; 固定爲我,謝謝 – balron 2014-10-07 21:13:13