在LINQ to Entities中批量刪除

c# database entity-framework linq linq-to-entities

有沒有辦法在LINQ或LINQ-to-Entities中批量刪除與給定查詢匹配的一堆對象?我能找到的唯一引用已經過時了,迭代並手動刪除我想刪除的所有對像似乎很愚蠢。

一般承認的答案

問題是舊問題(從EF5之前就存在)。對於使用EF5的任何人來說, EntityFramework.Extended會立即執行此操作。


熱門答案

前陣子我寫4部分的博客系列(零件1234中的實體框架覆蓋做批量更新(有一個命令))。

雖然該系列的重點是更新,但您肯定可以使用所涉及的原則來進行刪除。

所以你應該能夠寫出這樣的東西:

var query = from c in ctx.Customers
            where c.SalesPerson.Email == "..."
            select c;

query.Delete();

您需要做的就是實現Delete()擴展方法。有關如何...的提示,請參閱帖子系列

希望這可以幫助



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因