C#事務相關

以前在程序中用到事務時,都是在存儲過程當中建立事務來對數據進行控制,其實在C#中也有事務類。html

一、DbTransaction類對數據庫訪問添加事務,它是對數據庫事務操做的基類,繼承此類的有:
    System.Object
    System.MarshalByRefObject
         System.Data.Common.DbTransaction
          System.Data.EntityClient.EntityTransaction
          System.Data.Odbc.OdbcTransaction
          System.Data.OleDb.OleDbTransaction
          System.Data.OracleClient.OracleTransaction
          System.Data.SqlClient.SqlTransactionsql

二、System.Transactions命名空間下有兩個類也能夠用來事務的操做
  分別是 TransactionScopeCommittableTransaction(繼承自System.Transactions.Transaction)數據庫

     在使用 System.Transactions 所提供的類開發事務應用程序時,沒必要考慮須要使用哪一種事務,也沒必要考慮所涉及的事務管理器。 System.Transactions 基礎結構會自動管理這些事宜。編程

     System.Transactions 命名空間中的類所提供的基礎結構經過支持在 SQL Server、ADO.NET、消息隊列 (MSMQ) 和 Microsoft 分佈式事務協調器 (MSDTC) 中啓動的事務,使事務編程變得簡單和高效。System.Transactions 命名空間提供基於 Transaction 類的顯式編程模型和使用 TransactionScope 類的隱式編程模型,在後一種模型中,事務由該基礎結構自動管理。oracle

建立事務

System.Transactions 命名空間提供了兩種用於建立事務的模型。下列主題對這兩種模型進行了介紹。分佈式

使用事務範圍實現隱式事務spa

描述 System.Transactions 命名空間如何支持使用 TransactionScope 類建立隱式事務。htm

使用 CommittableTransaction 執行顯式事務blog

描述 System.Transactions 命名空間如何支持使用 CommittableTransaction 類建立顯式事務。繼承

 

TransactionScope是.Net Framework 2.0滯後,新增了一個名稱空間。它的用途是爲數據庫訪問提供了一個「輕量級」[區別於:SqlTransaction]的事物。使用以前必須添加對 System.Transactions.dll 的引用。

TransactionScope 類提供了一種簡單方法,無需與事務自身進行交互,就能夠在參與事務時對代碼塊進行標記。事務範圍能夠自動選擇和管理環境事務。因爲 TransactionScope 具備簡單易用性和高效性,所以在開發事務應用程序時優先使用該類。

 

 

http://msdn.microsoft.com/zh-cn/library/system.transactions.transaction.aspx

http://msdn.microsoft.com/zh-cn/library/ms229973.aspx

http://msdn.microsoft.com/zh-cn/library/ms172152.aspx

http://www.cnblogs.com/jillzhang/archive/2008/02/20/1075057.html

相關文章
相關標籤/搜索