SqlClient.SqlTransaction vs System.Transactions

时间:2012-08-28 10:25:08

标签: sqltransaction system.transactions

我们在设置 MSDTC 时遇到了一些问题,现在考虑将SystemTransactions替换为SqlTransactions

我对上述的不同以及我们可能会遇到的问题感兴趣。

2 个答案:

答案 0 :(得分:1)

Massimiliano引用和引用的文章在引用时已有7年历史,因此仅涉及.NET 2.0和SQL Server 2000和2005.但是,我认为重点仍然适用于更高版本。我无法在以后的版本中找到任何更改的直接适用评论。

似乎在SQL Server 2008及更高版本中,针对单个数据库的System.TransactionScope事务不太可能被提升为DTC而不是旧版本。

相关:SqlClient, System.Transactions, SQL Server 2008, and MARS

因此,根据您的SQL Server版本,使用针对单个数据库的System.Transactions,DTC会有或多或少的麻烦。

System.Transactions的代码比SqlTransactions的代码轻,但处理开销较高,而且控制较少。

答案 1 :(得分:0)

System.Transactions 不是替代SqlTransaction

但就单个数据库而言,基于ADO.NET 2.0 System.Transactions的事务与常规SqlTransaction之间的最大区别是“隔离级别”。然而,这是一个很大的不同。让我稍后来到隔离级别,但在此之前你必须意识到,在Sql 2k中,即使你有一个单独的数据库,交易也将由MSDTC管理。对于Sql2k5,事务由LTM UNTIL管理,连接到不同数据库的第二个SqlConnection进入图像。当这种情况发生时,交易从LTM升级到MSDTC。

http://dotnetslackers.com/SQL/re-3463_SqlTransaction_vs_System_Transactions.aspx

相关问题