使用linq.IQueryable删除多行?

时间:2012-05-29 08:14:19

标签: asp.net linq entity

使用以下条件删除多行,但错误..

        Melks = Ent.Tbl_Melk.Where(d => d.Mantaghe == Mantaghe && d.Hoze == Hoze && d.Block == Block && d.Melk == Melk).All();
        Ent.DeleteObject(Melks);
        int r = Ent.SaveChanges();
        if (r > 0)
        {
            return true;
        }
        else
        {
            return false;
        }

1 个答案:

答案 0 :(得分:2)

查看代码似乎Melks是一个布尔变量。你不能调用DeleteObject()提供一个布尔值作为参数。

您需要删除LINQ语句末尾的.All()谓词,然后删除查询返回的每个对象:

var melks = Ent.Tbl_Melk.Where(
  d => d.Mantaghe == Mantaghe && d.Hoze == Hoze && d.Block == Block && d.Melk == Melk);
foreach (var melk in melks)
  Ent.DeleteObject(melk);