我正在开发一个与SQL Server 2005数据库通信的应用程序来执行一些存储过程。我的客户端要求所有事务都在C#端管理,而不是由SQL Server管理,所以我在访问数据库时使用System.Transactions.TransactionScope
。但是,我刚看到System.Transactions.Transaction
数据类型,我很困惑......每种类型的主要优点/缺点是什么?我应该使用哪一个?
请注意,我还必须使用Enterprise Library的数据访问应用程序块。
答案 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中的事务的很好(有点旧)的文章