这就是我想要删除linq mvc 4中的多行。
int perm_id = (from c in db.tm_perm_level where c.perm_levelname == perm_name select c.perm_id).FirstOrDefault();
tblpermission objperm=(from c in db.tblpermission.Where (c.perm_id==perm_id) select c);
db.tblpermission.Remove(objperm);
int rowiseffected = db.SaveChanges();
我收到错误的地方附近。这是表格中的数据
id s.id perm_id read write
3 1 1 True True
4 2 1 True True
23 1 2 True False
24 1 2 True False
这是我试过的linq代码
var objperm = (from c in db.ts_perm_levelmapping where (c.perm_id == perm_id) select c);
foreach(var item in objperm)
{
db.ts_perm_levelmapping.Remove(item);
int rowiseffected = db.SaveChanges();
}
答案 0 :(得分:0)
我认为这是拼写错误。你正在使用两种类型的linq语法.. 使用这个
var objperm=(from c in db.tblpermission where (c.perm_id==perm_id) select c);
或使用此
var objperm=db.tblpermission.Where(d=>d.perm_id==perm_id);
如果您使用 EntityFramework 6
,则删除可以使用RemoveRange
的所有对象
db.tblpermission.RemoveRange(objperm);
如果没有,则可以使用迭代
喜欢
foreach(var a in objperm)
{
db.tblpermission.Remove(a);
}
或其他选项为EntityFramework.Extended