我遵循本教程:
foreach (var foo in item.Foos)
{
if (foo.State == PocoState.Deleted)
{
ctx.Entry(foo).State = EntityState.Deleted;
}
}
ctx.SaveChanges();
但我总是得到一个InvalidOperationException,因为' foo'在调用ctx.SaveChanges();
之前从item.Foos中删除答案 0 :(得分:3)
在迭代该列表时,您无法从列表中删除。 ToList
将解决问题,因为您将迭代"复制"而不是列表本身。
foreach (var foo in item.Foos.ToList())
{
if (foo.State == PocoState.Deleted)
{
ctx.Entry(foo).State = EntityState.Deleted;
}
}
ctx.SaveChanges();