C# 使用LINQ、SQLquery更新MVC4中的多个实体

C# 使用LINQ、SQLquery更新MVC4中的多个实体,c#,asp.net-mvc,linq,entity-framework,asp.net-mvc-4,C#,Asp.net Mvc,Linq,Entity Framework,Asp.net Mvc 4,例如,是否可以更新/删除多个实体 [HttpPost, ActionName("removeresponsible")] public ActionResult removeresponsibleaction(Responsible modelo) { Responsible responsible = db.Responsibles.Single(x => x.responsible_id == modelo.responsible_id); db.Responsible

例如,是否可以更新/删除多个实体

[HttpPost, ActionName("removeresponsible")]
public ActionResult removeresponsibleaction(Responsible modelo)
{
    Responsible responsible = db.Responsibles.Single(x => x.responsible_id == modelo.responsible_id);
    db.Responsibles.Remove(responsible);
    db.SaveChanges();
    ViewBag.responsible = db.Responsibles.ToList();
    return View("responsiblemanager");
}

此代码使用一个具有唯一id的单一负责人,但是如果有多个具有相同id的负责人,我怎么做?例如,我知道使用SQL时,它类似于“从负责的\u id=3的表中删除”。

如果您使用的是
实体框架6
,则可以使用以下方法:


如果您没有使用EF6,您将不得不循环浏览您的模型列表,并分别删除每个模型

e、 g

[HttpPost,ActionName(“removeresponsible”)]
公共行动结果移除责任(IEnumerable模型)
{
foreach(模型中的var模型)
{
Responsible=db.Responsibles.Single(x=>x.Responsible\u id==model.Responsible\u id);
db.责任人。移除(责任人);
}
db.SaveChanges();
ViewBag.responsible=db.Responsibles.ToList();
返回视图(“责任经理”);
}

谢谢你的快速回答,我试过了,效果很好谢谢你的回答,我也在EF 5.0.0.0上试过,效果也很好,在EF 6中更简单,但知道如何在无法访问EF 6时使用也很有帮助
var responsibles = db.Responsibles.Where(x => x.responsible_id == modelo.responsible_id).ToList();
db.Responsibles.RemoveRange(responsibles);
[HttpPost, ActionName("removeresponsible")]
public ActionResult removeresponsibleaction(IEnumerable<Responsible> models)
{
    foreach(var model in models)
    {
        Responsible responsible = db.Responsibles.Single(x => x.responsible_id == model.responsible_id);
        db.Responsibles.Remove(responsible);
    }
    db.SaveChanges();
    ViewBag.responsible = db.Responsibles.ToList();
    return View("responsiblemanager");
}