本文介绍了Transaction 和 TransactionScope 的区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am developing an application which communicates with an SQL Server 2005 database to execute some stored procedures. My client demands that all transactions be managed on the C# side and not by SQL Server, and so I am using System.Transactions.TransactionScope when accessing the database. However, I have just seen the System.Transactions.Transaction datatype, and I am confused... What are the main pros/cons of each type? Which one should I use?

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

Please note that I must also use Enterprise Library's Data Access Application Block.

推荐答案

来自 msdn :

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

您可以在此处阅读更多相关信息:

You can read more about that here :

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

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

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

Great (a bit old) article about transaction in .NET 2.0

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

这篇关于Transaction 和 TransactionScope 的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!