从多个表中删除对象
本文关键字:删除 对象 | 更新日期: 2023-09-27 17:59:28
如果电影是从列表框中选择的,并且它正在工作,我正试图从租赁表中删除它,但我还需要从租赁人员表中删除连接到电影的数据
Rentals表包含列表框中的movieid和在rentingpeople中也可以找到的personid,如果匹配,则应删除整行。
var search = (from g in db.Rentals where g.Movietitle == (string)lBfilmlista.SelectedValue select g).First();
foreach (var c in db.Rentingpeople where c.personid==search.personid).First();
{
db.Rentingpeople.DeleteObject(c);
}
db.Rentals.DeleteObject(search);
db.SaveChanges();
在where c.personid==search.personid
处存在代码错误);预期
问题在于foreach
循环末尾的First
,以及查询语法与方法语法的混合。
所以你的代码应该是:
var search = (from g in db.Rentals where g.Movietitle == (string)lBfilmlista.SelectedValue select g).First();
var rowsToBeDeleted = db.Rentingpeople.Where(c=> c.personid==search.personid).ToList();
foreach (var item in rowsToBeDeleted)
{
db.Rentingpeople.DeleteObject(item);
}
db.Rentals.DeleteObject(search);
db.SaveChanges();
还可以为表设置"删除时级联"规则。