2009-09-08 96 views
6

我可能完全失明和愚蠢的,但我不能找到ADO.NET實體數據模型會莫名其妙地從我的表中刪除行產生任何方法。我不想創建自定義查詢。那我該怎麼做?請幫忙。ado.net實體框架刪除行

我沒有方法DeleteOnSubmit ......不知道爲什麼。這是我想要使用的代碼。

var deleteOrderDetails = 
from details in db.OrderDetails 
where details.OrderID == 11000 
select details; 

foreach (var detail in deleteOrderDetails) 
{ 
db.OrderDetails.DeleteOnSubmit(detail); 
} 

db.SubmitChanges(); 

回答

10

需要一對夫婦改變的:

db.DeleteObject(detail); 

db.SaveChanges(); 

善良,

PS:你一直在使用LINQ to SQL,然後交換到實體F. ramework?

+0

是的。情況就是這樣。另外 - 我可以一次刪除多行嗎? – Trimack 2009-09-08 14:24:38

+0

你可以爲每個SaveChanges做多個刪除對象,是的:) – 2009-09-08 14:31:06

+0

不,我的意思是如果我可以做dv.DeleteObject(deleteOrderDetails); ?? – Trimack 2009-09-08 14:40:32

5

這裏的另一種方式(感謝this answer

我假設你有Orders表,OrderDetails通過OrderID與它有關。

var order = db.Orders.FirstOrDefault(o=> o.OrderID == 11000); 
if(order != null) 
{ 
    order.OrderDetails.Clear(); 
    db.SaveChanges(); 
} 

這應該刪除與該訂單相關的所有訂單詳情。

編輯:固定密碼