私は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));