ASP.NET 核心 EF DbUpdateConcurrencyException

ASP.NET Core EF DbUpdateConcurrencyException

我试图在我的 ASP.NET 核心网站中手动实施级联删除。 因此,我得到了一个基于 3 个实体的投票部分: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 行。加载实体后数据可能已被修改或删除。

所以。我真的不明白为什么他期望影响 1 行,因为我将列表传递给 RemoveRange()

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