【发布时间】:2016-10-20 16:33:59
【问题描述】:
我正在开发一个 ASP.NET MVC/C#/SQL Server 应用程序,并且我有一个事务来更新多个表。
using (var scope = TransactionHelpers.CreateTransactionScopeRequiresNew())
{
// CRUD operations for table 1, table 2....
}
当单个用户调用上述方法时,它可以正常工作。但是,如果 2 个用户几乎同时调用上述方法,则一个请求有效,另一个请求失败,可能是由于之前的事务锁定了表。
那么解决这个问题的最佳方法是什么?
【问题讨论】:
-
你的事务的隔离级别是多少?
-
使用存储过程更新
-
它是 ReadCommitted 隔离级别
-
不幸的是,我不允许使用存储过程,因为我们在整个项目中都使用内联 SQL。
-
你使用实体框架吗?
标签: c# asp.net-mvc transactions