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

相关文章
相关标签/搜索