2009-11-23 38 views
11

Tôi đọc rằng khung Entity mới sẽ bao gồm một phương thức để xóa nhiều mục (LINQ to SQL có DeleteAllOnSubmit()) nhưng tôi không thể tìm thấy hàm/phương thức để làm điều đó.Entity Framework 4 Multiple Object Delete (RemoveAll)

Đây có phải là bản Beta 2 hay tôi phải tự làm?

UPDATE:

Đây là những gì tôi đang sử dụng hiện nay:

public void DeleteObjects(IEnumerable<object> objects) 
    { 
     foreach (object o in objects) 
     { 
      DeleteObject(o); 
     } 
     SaveChanges(); 
    } 
+1

có thể trùng lặp của [Xóa hàng loạt trong LINQ thành đối tượng] (http://stackoverflow.com/questions/869209/bulk-deleting-in-linq-to-entities) –

Trả lời

8

EF 4 cho phép bạn thực hiện các câu lệnh TSQL chống lại một bối cảnh đối tượng:

using (var context = new EntityFrameworkExampleEntities()) 
    {  
    var count = 
     context.ExecuteStoreCommand(@"DELETE FROM Companies WHERE [CompanyID]=4");    
    } 

Xem blog sau đây để biết chi tiết.

http://blogs.microsoft.co.il/blogs/gilf/archive/2009/11/25/execute-t-sql-statements-in-entity-framework-4.aspx

+0

Có hạn chế đối với chức năng của tôi không? – Omar

+2

Hạn chế sẽ là tất cả các đối tượng của bạn được giữ trong bộ nhớ trong quá trình xóa. Nếu bạn muốn xóa một loạt lớn các đối tượng mà bạn chưa tải từ cơ sở dữ liệu, tất cả chúng sẽ được tải vào ứng dụng trước khi chúng bị xóa. –

+1

Ick. Để trích dẫn bài viết bạn liên kết đến, "Chỉ có thể sử dụng khả năng này trong trường hợp Khung thực thể không hỗ trợ thứ bạn cần". EF hỗ trợ xóa nhiều đối tượng, gọi DeleteObject() và sau đó SaveChanges() (hoặc thực hiện http://stackoverflow.com/a/870081/24267) này. – mhenry1384

0

Tôi biết đây là muộn, nhưng tôi tìm thấy bài đăng này và tìm thấy một giải pháp đơn giản hơn, mà không được đăng. Bạn có thể đặt OnDelete thành Cascade trong thuộc tính Association. Trong VS2012, mở tệp edmx. Nhấp vào liên kết và bạn sẽ tìm thấy OnDelete trong tab Properties. Sau đó, bạn có thể sử dụng phương thức Remove() mà không có trình kích hoạt hoặc bất kỳ xử lý đặc biệt nào khác.

Các vấn đề liên quan