实体框架为某些用户抛出了“ System.Data.Entity.Core.OptimisticConcurrencyException”

时间:2019-01-04 15:19:25

标签: c# .net sql-server entity-framework entity-framework-6

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

某些匿名用户每天都会遇到此问题。

0 个答案:

没有答案