我們在MSDTC設置中存在一些問題,現在考慮用SqlTransactions
替換SystemTransactions
。SqlClient.SqlTransaction vs System.Transactions
我對上述的差異感興趣,以及我們可能會這樣做的可能的問題。
我們在MSDTC設置中存在一些問題,現在考慮用SqlTransactions
替換SystemTransactions
。SqlClient.SqlTransaction vs System.Transactions
我對上述的差異感興趣,以及我們可能會這樣做的可能的問題。
System.Transactions
不是取代SqlTransaction
。
但是,只要考慮到單個數據庫,基於ADO.NET 2.0 System.Transactions的事務和常規SqlTransaction之間的最大區別就是「隔離級別」。然而,這是一個很大的區別。讓我馬上進入隔離級別,但在此之前您必須意識到,在Sql 2k中,事務將由MSDTC管理,即使您只有一個數據庫參與。對於Sql2k5,事務由LTM管理,直到連接到不同數據庫的第二個SqlConnection進入畫面。當這種情況發生時,交易從LTM上漲到MSDTC。
http://dotnetslackers.com/SQL/re-3463_SqlTransaction_vs_System_Transactions.aspx
引用時引用,並通過引用的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更輕,但處理開銷更高,並且您的控制更少。
我在談論用SqlTransactions替換System.Transactions,所以擺脫了System.Transactions和MSDCT(反之亦然)。 – user1117513
該文章仍然顯示了差異(他們是兩個不同的東西,他們的行爲不同) –