2010-10-12 89 views
1

如何在沒有循環的情況下刪除多個實體?目前,我有:如何使用實體框架執行批量刪除?

Dim itemsToDelete As List(Of Item) = (From t In _entities.Item _ 
              Where t.Column = columnValue).ToList 

For Each item In itemsToDelete 
     _entities.DeleteObject(item) 
Next 

_entities.SaveChanges() 
+2

[批量刪除在LINQ to Entities]可能的重複(http://stackoverflow.com/questions/869209/bulk-deleting-in-linq-to-entities) – 2010-10-12 20:55:41

+0

有趣的是,擴展方法可以完成這項工作,但我希望能夠找到EF中已經內置的東西。 – Moderator71 2010-10-12 21:47:40

回答

3

一個字:不!

任何典型的ORM - 無論是Linq-to-SQL,NHibernate,Entit Framework和其他 - 都可以很好地處理單個或一些對象。

不是然而,設計或優化爲批量處理

如果您需要刪除數百或數千行:使用直接的SQL - 可以作爲即席SQL查詢或存儲過程。這樣做更容易,更有效率。

+0

不完全準確 - SubSonic 3可以處理這個問題... – JTtheGeek 2011-03-02 01:48:37