【发布时间】:2012-12-24 21:41:02
【问题描述】:
下面的语句应该从 allCars 中删除 someCars,它可以工作,但是我想知道是否有更好的解决方案,专门只使用 linq
foreach (var car in someCars)
{
db.allCars.DeleteObject(car);
}
注意 db 是 db 实体的实例。
任何帮助将不胜感激。
【问题讨论】:
标签: linq entity-framework
下面的语句应该从 allCars 中删除 someCars,它可以工作,但是我想知道是否有更好的解决方案,专门只使用 linq
foreach (var car in someCars)
{
db.allCars.DeleteObject(car);
}
注意 db 是 db 实体的实例。
任何帮助将不胜感激。
【问题讨论】:
标签: linq entity-framework
您可以使用EntityFramework.Extended 库根据某些条件删除实体(库可从 Nuget 获得):
db.allCars.Delete(car => /*condition*/);
【讨论】:
将 Linq 用作 ForEach:
db.allCars.Where(/* condition */).ToList().ForEach(car => db.allCars.Remove(car));
在这个答案的同一行:),How do I delete multiple rows in Entity Framework (without foreach)
【讨论】:
你可以使用:
db.allCars.RemoveAll(db.allCars.Where(/* condition */));
【讨论】:
Where 子句之后使用.ToList() 来解决,假设我是正确的。