如何在asp.net mvc中使用Linq从数据库中删除多条记录

Yas*_*lam 3 c# linq asp.net asp.net-mvc asp.net-mvc-4

这是删除一条记录的代码:

var vehicleProperty = db.VehicleProperties.Where(a => a.EngineId == id).ToList();
db.VehicleProperties.Remove(vehicleProperty);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

如果我想删除多个项目,那么我将做什么,例如,删除所有项目 where typeId = 4

我正在尝试使用下面的代码,但会导致错误.

var vp = db.VehicleProperties.Where(a => a.EngineId == id).ToList();
db.VehicleProperties.Remove(vp);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

我正在使用实体框架版本= 5.0.0.0并使用EF Designer表单数据库(实体数据模型)我尝试了很多代码但错误请检查我的截图与代码和错误

错误尝试使用RemoveRange 错误2 错误3 EF Designer表单数据库

And*_*ols 8

要通过Linq to Entities执行此操作,您需要遍历集合,逐个删除它们

var vps = db.VehicleProperties.Where(a => a.EngineId == id).ToList();
foreach (var vp in vps)
    db.VehicleProperties.Remove(vp);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

或者,您可以根据此MSDN文章传入SQL命令


Mik*_*e_G 5

来自相关文章

var vp = db.VehicleProperties.Where(a => a.EngineId == id);
db.VehicleProperties.RemoveRange(vp);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

或者

db.Database.ExecuteSqlCommand("delete from VehicleProperties where EngineId = {0}", 4);
Run Code Online (Sandbox Code Playgroud)