Transaction和TransactionScope之间的区别

时间:2011-06-27 12:58:33

标签: c# sql-server-2005 transactions transactionscope

我正在开发一个与SQL Server 2005数据库通信的应用程序来执行一些存储过程。我的客户端要求所有事务都在C#端管理,而不是由SQL Server管理,所以我在访问数据库时使用System.Transactions.TransactionScope。但是,我刚看到System.Transactions.Transaction数据类型,我很困惑......每种类型的主要优点/缺点是什么?我应该使用哪一个?

请注意,我还必须使用Enterprise Library的数据访问应用程序块。

1 个答案:

答案 0 :(得分:12)

来自msdn:

  

TransactionScope类提供了一个   将代码块标记为的简单方法   参与交易,   ,无需您与交易本身进行互动。一个   事务范围可以选择和   管理环境交易   自动。由于其易于使用   和效率,建议   您使用TransactionScope类   在开发交易时   应用。 实例化时   TransactionScope,交易   经理确定哪个交易   参加。一旦确定,   范围总是参与其中   交易。该决定基于   两个因素:是否有环境   交易存在和价值   TransactionScopeOption的   构造函数中的参数。该   环境交易是交易   您的代码在其中执行。您   可以获得对环境的参考   通过调用静态事务   交易的当前财产   类。

您可以在此处详细了解:

http://msdn.microsoft.com/en-us/library/ms172152(v=vs.90).aspx

http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope(v=vs.90).aspx

关于.NET 2.0中的事务的很好(有点旧)的文章

http://msdn.microsoft.com/en-us/library/ms973865.aspx