.net事務使用

來源:互聯網
上載者:User

處理事務是構建許多商務邏輯的一個重要方面。

.NET Framework 2.0 中的事務

在 .NET Framework 2.0包含 System.Transactions,這是一種新的命名空間,完全專註於控制事務性行為。開發人員將最常將 System.Transactions 與某個“執行內容”配合使用,這是 .NET Framework 2.0 中的一種新結構。執行內容允許指定適用於包含在一個定義範圍內的所有代碼的通用資訊,如事務。以下是應用程式如何使用該方法將一組操作組合成一個事務的樣本:

using System.Transactions;using (TransactionScope ts = new TransactionScope(Required)){   // 執行操作,例如更新不同的 DBMS   ts.Complete();
}位於 using 塊內的所有操作將成為一個事務的一部分,因為它們共用其所定義的事務執行內容。本例中的最後一行,調用 TransactionScope 的 Complete 方法,將導致退出該塊時請求提交該事務。此方法還提供了內建的錯誤處理,出現異常時會終止事務。 

如本例那樣,為新 TransactionScope 指定 Required,意味著此代碼將總是作為事務的一部分運行:若其調用方的事務存在,則加入之;若不存在,則建立一個新的。如同在企業服務中一樣,還可以指定其他選項,包括 RequiresNew、Supported 和 NotSupported。

與企業服務及其前任 MTS 和 COM+ 不同,Systems.Transactions 完全專註於控制事務性行為。例如,事務與對象的內部狀態之間不需要存在串連。企業服務需求一個對象在其結束事務時被停用,但 Systems.Transactions 則沒有這種需要。

ADO.NET 2.0中的SqlClient提供者與新的System.Transactions命名空間相整合,從而啟用了稱為可升級事務的行為。儘管Transact SQL可以用來啟動本地或分散式交易(BEGIN TRANSACTION和BEGIN DISTRIBUTED TRANSACTION),但在某些情況下(特別是在用戶端/中介層編程方面),程式員可能希望編寫可以在一個資料庫方案或多個資料庫方案中使用的組件。這些方案可能包含多個SQL Server執行個體,並且SQL Server可以自動檢測到多執行個體訪問並將事務從本地“提升”到多執行個體(分布式)。即使在使用多個資料庫產品或多個串連的情況下,這也是可能的,前提是第一個資料庫(在分散式交易術語中稱為資源管理員)是SQL Server。在ADO.NET中,預設情況下啟用可升級的事務。

相關資料:

http://editblog.csdn.net/msdncolumn/archive/2005/02/25/1658.aspx

http://blog.joycode.com/kaneboy/archive/2005/02/15/44356.aspx

http://idior.cnblogs.com/archive/2005/08/15/214300.html
本文為轉載

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.