gpt4 book ai didi

entity-framework-4 - 删除 Entity Framework 中的子对象

转载 作者:行者123 更新时间:2023-12-03 09:14:55 25 4
gpt4 key购买 nike

我正在使用 EF,当我这样做时:

            foreach (var reg in detail.Regs)
{
this.db.Regs.DeleteObject(reg);
}

我明白了:
Collection was modified; enumeration operation may not execute.

我在这里做错了什么???

最佳答案

原因是因为当您从上下文中删除对象时,EF 会主动更新 Regs 导航属性计数,这意味着 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));

关于entity-framework-4 - 删除 Entity Framework 中的子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4150781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com