Transaction和TransactionScope之间的区别

Use*_*ser 14 c# transactions sql-server-2005 transactionscope

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

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

Tom*_*uλa 14

来自msdn:

TransactionScope类提供了一种将代码块标记为参与事务的简单方法, 而无需您与事务本身进行交互.事务范围可以自动选择和管理环境事务.由于其易用性和高效率,建议您在开发事务应用程序时使用TransactionScope类.实例化TransactionScope时,事务管理器确定要参与的事务.一旦确定,范围始终参与该交易.该决定基于两个因素:是否存在环境事务以及构造函数中的TransactionScopeOption参数的值.环境事务是代码执行的事务.您可以通过调用Transaction类的静态Current属性来获取对ambient环境事务的引用.

你可以在这里阅读更多相关信息:

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