淺析LINQ事務處理的實現
LINQ事務處理是什么情況?LINQ事務處理的原理是什么呢?LINQ事務處理的基本實現是怎么樣的呢?那么這里我們就向你詳細LINQ事務處理的基本情況,希望對你有所幫助。
LINQ事務處理依賴于TransactionScope,一個使用依賴全局變量的非OO設計模式的.NET 2.0類。
TransactionScope被用來為一組變化設置事務。不像在ADO.NET中的事務對象,TransactionScope不限于一個單獨的數據庫鏈接。它最常用的一個案例是在多臺服務器上運行一個事務。
當一個TransactionScope對象被創建時,它會自動將自己注冊成線程的事務。所有的事務感知操作也將會自動地使用這個事務,而不需要將事務對象傳遞給對象。事務感知對象的例子包括SQLCommand類和LINQ to SQL對象。
這種設計的一個比較嚴重的副作用是事務和操作間的連接不是那么直接。
LINQ事務處理實例
- Public Sub OperationWithTransaction()
- Using t As New Transactions.
- TransactionScope Operation1()
- t.Complete() End Using End Sub
就上面的這個例子,當OperationWithTransaction被調用時,Operation1函數中的所有動作都和事務相關聯。就是在事務并沒有明確傳遞給方法的時候,這種情況也會發生。這就使得對Operation1的調試變得有些復雜,尤其是在堆棧跟蹤(Stack Trace)上事務范圍(transaction scope)被創建了多個層時。
最后需要提醒的是,在使用多線程時,一個給定的TransactionScope只能應用在當前線程上。
LINQ事務處理的基本情況就向你介紹到這里,希望對你了解和學習LINQ事務處理有所幫助。
【編輯推薦】