2009-09-08 3 views
6

Tôi có thể hoàn toàn bị mù và ngu ngốc, nhưng tôi không thể tìm thấy bất kỳ phương pháp nào được tạo bởi ADO.NET Entity Data Model bằng cách nào đó sẽ xóa các hàng khỏi bảng của tôi. Tôi không muốn tạo truy vấn tùy chỉnh. Vì vậy, làm thế nào để tôi làm điều đó? Hãy giúp tôi.ado.net khung thực thể xóa hàng

Tôi không có phương thức DeleteOnSubmit ... không biết tại sao. Đây là mã tôi muốn sử dụng.

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

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

db.SubmitChanges(); 

Trả lời

10

Một vài thay đổi cần thiết:

db.DeleteObject(detail); 

db.SaveChanges(); 

Kindness,

Dan

PS: Bạn đã từng sử dụng LINQ to SQL và sau đó đổi sang thực thể F r thạo?

+0

Có. Đó sẽ là trường hợp. Ngoài ra - tôi có thể xóa nhiều hàng cùng một lúc bằng cách này không? – Trimack

+0

Bạn có thể làm mutiple xóa các đối tượng trên mỗi SaveChanges, có :) –

+0

Không, ý tôi là nếu tôi có thể làm dv.DeleteObject (deleteOrderDetails); ?? – Trimack

5

Dưới đây là một cách khác (nhờ this answer)

Tôi giả sử bạn có bảng Orders, và OrderDetails có liên quan đến nó thông qua OrderID.

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

Điều này sẽ xóa tất cả các chi tiết đơn đặt hàng được liên kết với đơn đặt hàng đó.

chỉnh sửa: sửa mã