使用LINQ,SQLquery更新MVC4中的多个实体

时间:2014-10-13 22:20:16

标签: 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.Responsibles.Remove(responsible);
    db.SaveChanges();
    ViewBag.responsible = db.Responsibles.ToList();
    return View("responsiblemanager");
}

此代码适用于负责一个唯一ID的单个代码,但如果有许多负责同一个ID,我该怎么办呢?例如,我知道使用SQL它会是这样的“从表中删除,其中responsible_id = 3”。

2 个答案:

答案 0 :(得分:1)

如果您使用的是Entity Framework 6,则可以使用RemoveRange方法:

var responsibles = db.Responsibles.Where(x => x.responsible_id == modelo.responsible_id).ToList();
db.Responsibles.RemoveRange(responsibles);

答案 1 :(得分:0)

如果您不使用EF 6,则必须循环浏览模型列表,并分别删除每个模型。

e.g。

[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");
}