c# - 实体框架为某些用户抛出“System.Data.Entity.Core.OptimisticConcurrencyException”
问题描述
我正在尝试删除用户表和用户配置表,它大部分时间都可以正常工作,但是对于某些用户,它会抛出OptimisticConcurrencyException
以下消息:
存储更新、插入或删除语句影响了意外数量的行 (0)。自加载实体后,实体可能已被修改或删除。有关了解和处理乐观并发异常的信息,请参阅http://go.microsoft.com/fwlink/?LinkId=472540。
这是我的代码:
var context = UnitOfWork._context;
var userToRemove = context.Users.Where(<some_condition>).ToList();
var userConfigurationsToRemove = (some_condition_with_users_join_on_userConfig).ToList();
if (userToRemove != null && userToRemove.Any())
{
context.Users.RemoveRange(userToRemove );
if (userConfigurationsToRemove != null && userConfigurationsToRemove.Any())
{
context.userConfigurations.RemoveRange(userConfigurationsToRemove );
}
context.SaveChanges();
}
我的问题是:users
表是子表并且userConfigurations
是父表,我可以保存两次更改吗?一个又一个context.Users.RemoveRange(userToRemove );
,context.userConfigurations.RemoveRange(userConfigurationsToRemove)
或者还有什么可以做的吗?
对于一些匿名用户来说,这个问题每天都会出现一次。