在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()扩展方法。有关如何...的提示,请参阅帖子系列

希望这可以帮助




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因