我正在尝试删除用户表和用户配置表,大多数情况下它工作正常,但是对于某些用户,它会在此消息中抛出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)
之后,还是还有其他可以做的事情?
某些匿名用户每天都会遇到此问题。