ASP.NET Core EF DbUpdateConcurrencyException

时间:2018-02-15 21:45:21

标签: entity-framework asp.net-core-mvc-2.0

我试图在我的ASP.NET核心网站中手动实现级联删除。 所以,我得到了一个基于3个实体的Poll部分:PollQuestion,PollOption,PollAnswer。 我通过删除所有答案开始这个,这很好,然后我移动到使用此代码删除选项:

if (answersDeleted) {
    options = GetOptionsList(_pollID);
    context.PollOption.RemoveRange(options);
    context.SaveChanges();
    return true;
} else { 
    return false;
}

执行SaveChanges()时,我得到以下异常:

Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException:数据库操作预计会影响1行,但实际上会影响2行。自实体加载以来,数据可能已被修改或删除。

因此。因为我将列表传递给RemoveRange(),所以我无法理解他为什么会影响1行。

1 个答案:

答案 0 :(得分:0)

如果有人可以利用这一天....我发现了问题,它与我发布的代码块并不严格相关;几天前我修改了轮询表,并将Key从单个字段键更改为复合键,然后我忘记在模型中反映出这个更改,它仍然使用单个键。它没有返回任何错误,所以我没有注意到这一点,直到我不得不在数据库上做其他的东西,我发现了问题。