实体框架6在2个屏幕同时为不同记录更新同一个表时给予回滚

时间:2017-09-15 16:14:02

标签: c# entity-framework transactions entity-framework-6

我有一个Web应用程序,它使用存储的proecdure从不同的屏幕更新状态表。

每个屏幕调用数据层中的代码下方,以使用存储过程更新状态 使用(var dbContext = new Entities())             {

            using (var dbContextTransaction = dbContext.Database.BeginTransaction())
            {
                try
                {

                        dbContext.UpdateStatus( some parameter);

使用相同的dbContext更新更多的表和sp。

                    dbContext.SaveChanges();
                    dbContextTransaction.Commit();
                }
                catch (Exception ex)
                {

---------------记录数据库中的异常---------------

                    dbContextTransaction.Rollback();  // Rollback Transaction
                    throw throwNewException;
                }
            }
        }

请帮忙。 如果2个不同的登录用户从2个不同的屏幕调用此方法,则会为其中一个屏幕提供回滚错误。 错误:消息:在批处理结束时检测到不可提交的事务。该事务将被回滚。

此存储过程更新该应用程序的旧状态记录,并插入具有新状态的新记录。

我遇到了这个问题。请帮忙

0 个答案:

没有答案