我正在分析和预防应用程序中的死锁问题,发现以下代码行用于事务范围:
var tranaction = new TransactionOptions { IsolationLevel = IsolationLevel.ReadUncommitted };
// TransactionScopeOption.Required changed to Suppress for 2 tier issue with MSDTC
using (var transactionScope = new TransactionScope(TransactionScopeOption.Suppress, tranaction))
{
//Select entity command.
}
我们只有一些
select
实体语句,允许脏读操作。我已经阅读了一些关于TransactionScopeOption
的资源,但在这种情况下我没有找到确切的TransactionScopeOption
,或者感觉我们可以将选项更改为RequiredNew
,每次执行选择命令时都创建一个新事务。需要帮助前进。我们使用SQL Server作为数据源。如果我们将其更改为RequiredNew
,那么性能影响将是什么,因为此更改将针对应用程序中的所有选择实体命令进行?
TransactionScopeOption.Suppress
可以改成TransactionScopeOption.RequiredNew
吗? - Ankush Madankar