删除子在实体框架对象
问题描述:
我使用EF和当我这样做:删除子在实体框架对象
foreach (var reg in detail.Regs)
{
this.db.Regs.DeleteObject(reg);
}
我得到这个:
Collection was modified; enumeration operation may not execute.
什么我是我做错了什么???
答
的原因是因为你从上下文中删除对象,EF正在积极更新的REG导航属性计数,这意味着detail.Regs的的foreach循环期间收集正在改变总是导致你得到的例外。
您可以创建一个新的集合对象,并保持从中删除这样的:
foreach (var reg in detail.Regs.ToList())
{
this.db.Regs.DeleteObject(reg);
}
甚至可以使用LINQ 的ForEach方法使得清洁:
detail.Regs.ToList().ForEach(r => db.Regs.DeleteObject(r));
感谢你这么很多...哟是明星.... :) – Shaz 2014-02-07 16:25:38
从数据库中获取所有记录只是为了让他们删除不是? – Marco 2015-12-02 18:09:40