Entity framework 4 删除实体框架中的子对象
我正在使用EF,当我这样做时:Entity framework 4 删除实体框架中的子对象,entity-framework-4,entity-relationship,Entity Framework 4,Entity Relationship,我正在使用EF,当我这样做时: foreach (var reg in detail.Regs) { this.db.Regs.DeleteObject(reg); } 我明白了: Collection was modified; enumeration operation may not execute. 我在这里做错了什么?原因是,当您从上下文中删除对象时,EF正在主动更新Regs导航
foreach (var reg in detail.Regs)
{
this.db.Regs.DeleteObject(reg);
}
我明白了:
Collection was modified; enumeration operation may not execute.
我在这里做错了什么?原因是,当您从上下文中删除对象时,EF正在主动更新Regs导航属性计数,这意味着详细信息。在foreach循环期间,Regs集合正在更改,这总是会导致出现异常。
您可以创建一个新的集合对象并按如下方式继续从中删除:
foreach (var reg in detail.Regs.ToList())
{
this.db.Regs.DeleteObject(reg);
}
甚至可以使用LINQ ForEach方法使其更干净:
从数据库中获取所有记录只是为了删除它们不?
detail.Regs.ToList().ForEach(r => db.Regs.DeleteObject(r));