C#事务相关

之前在程序中用到事务时,都是在存储过程中创建事务来对数据进行控制,其实在C#中也有事务类。

1、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.SqlTransaction

2、System.Transactions命名空间下有两个类也可以用来事务的操作
  分别是 TransactionScopeCommittableTransaction(继承自System.Transactions.Transaction)

     在使用 System.Transactions 所提供的类开发事务应用程序时,不必考虑需要使用哪种事务,也不必考虑所涉及的事务管理器。 System.Transactions 基础结构会自动管理这些事宜。

     System.Transactions 命名空间中的类所提供的基础结构通过支持在 SQL Server、ADO.NET、消息队列 (MSMQ) 和 Microsoft 分布式事务协调器 (MSDTC) 中启动的事务,使事务编程变得简单和高效。System.Transactions 命名空间提供基于 Transaction 类的显式编程模型和使用 TransactionScope 类的隐式编程模型,在后一种模型中,事务由该基础结构自动管理。

创建事务

System.Transactions 命名空间提供了两种用于创建事务的模型。下列主题对这两种模型进行了介绍。

使用事务范围实现隐式事务

描述 System.Transactions 命名空间如何支持使用 TransactionScope 类创建隐式事务。

使用 CommittableTransaction 执行显式事务

描述 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

posted @ 2013-10-08 17:38  武沛齐  阅读(575)  评论(0编辑  收藏  举报