我有這個例如代碼:爲什麼要移除列表<Entity>當SubmitChanges()被調用時不反射?
var list = (from item in db.Table
select item).ToList();
[做處理,我修改,添加,刪除物品清單與DX GridControl] [確保插入項目] [我可以看到項目(S)不在名單]
db.SubmitChanges();
更改不反映刪除項目的數據庫。 有什麼不對?
我有這個例如代碼:爲什麼要移除列表<Entity>當SubmitChanges()被調用時不反射?
var list = (from item in db.Table
select item).ToList();
[做處理,我修改,添加,刪除物品清單與DX GridControl] [確保插入項目] [我可以看到項目(S)不在名單]
db.SubmitChanges();
更改不反映刪除項目的數據庫。 有什麼不對?
您無法修改列表以更新數據庫。您必須修改數據庫實體集合。例如:db.Table.Remove(instance)
編輯:我相信上面的語法只是EF4。對於原始EF,您需要使用DeleteOnSubmit
,這是您實體容器上的一種方法。
您是否將您的更改與db.SubmitChanges();
方法一起應用於您的數據上下文?從MSDN 例子:
var deleteOrderDetails =
from details in db.OrderDetails
where details.OrderID == 11000
select details;
foreach (var detail in deleteOrderDetails)
{
db.OrderDetails.DeleteOnSubmit(detail);
}
try
{
db.SubmitChanges();
}
catch (Exception e)
{
Console.WriteLine(e);
// Provide for exceptions.
}
這裏是源:http://msdn.microsoft.com/en-us/library/bb386925.aspx
我不知道,你可以填充從你的清單數據庫中的變化,如果這是你想要達到的目標。
所以我應該保留一個列表與刪除Id和DeleteInSubmit(Id)。這是有道理的...我會嘗試。 – 2010-02-22 15:20:54
不,你應該提供實體對象DeleteOnSubmit把他們置於一個掛起的刪除狀態 – anthares 2010-02-22 15:23:09
我想anthares告訴同樣的事情! – 2010-02-22 16:00:29