使用linq删除Foreach

时间:2013-01-10 13:26:11

标签: linq entity-framework

以下语句应该从allCars中删除someCars,并且它有效,但我想知道是否有更好的解决方案,只专门使用linq

foreach (var car in someCars) 
{
    db.allCars.DeleteObject(car); 
}

请注意,db是db实体的实例。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:5)

您可以使用EntityFramework.Extended库根据某些条件删除实体(Nuget提供的库):

db.allCars.Delete(car => /*condition*/);

答案 1 :(得分:4)

使用Linq作为ForEach:

db.allCars.Where(/* condition */).ToList().ForEach(car => db.allCars.Remove(car));

在这个答案的同一行:),How do I delete multiple rows in Entity Framework (without foreach)

答案 2 :(得分:0)

您可以使用:

db.allCars.RemoveAll(db.allCars.Where(/* condition */));