使用linq的Foreach delete
下面的语句应该从allCars中删除一些cars,它是有效的,但是我想知道是否有更好的解决方案专门使用linq使用linq的Foreach delete,linq,entity-framework,Linq,Entity Framework,下面的语句应该从allCars中删除一些cars,它是有效的,但是我想知道是否有更好的解决方案专门使用linq foreach (var car in someCars) { db.allCars.DeleteObject(car); } 注意,db是db实体的实例 任何帮助都将不胜感激 您可以使用库根据某些条件删除实体(库可从Nuget获得): 您可以使用: db.allCars.RemoveAll(db.allCars.Where(/* condition */)); 使用L
foreach (var car in someCars)
{
db.allCars.DeleteObject(car);
}
注意,db是db实体的实例
任何帮助都将不胜感激 您可以使用库根据某些条件删除实体(库可从Nuget获得):
您可以使用:
db.allCars.RemoveAll(db.allCars.Where(/* condition */));
使用Linq作为ForEach:
db.allCars.Where(/* condition */).ToList().ForEach(car => db.allCars.Remove(car));
在回答的同一行:),可能重复Hi,感谢您的快速响应。在来这里之前,我确实尝试过这个方法,但是执行起来要花很多时间(超过一分钟)。我相信执行这个方法需要很长时间的原因是这个值从未被缓存。作为一个IEnumberable,每次迭代都会从db中获取它。因此,对于删除的每辆车,它会在删除下一辆车之前收集数据库中的每辆车。假设我是正确的,可以在
Where
子句后面加一个.ToList()
来解决这个问题
db.allCars.Where(/* condition */).ToList().ForEach(car => db.allCars.Remove(car));