编辑:我只访问一个数据库,但是确实创建了DTC事务。我可以在DTC事务列表GUI(组件服务插件)中看到它。为什么会这样?
我需要对一个数据库执行事务(多个插入命令)。
我应该使用TransactionScope还是IDbTransaction(connection.BeginTransaction)?
TransactionScope似乎更新……但它是否只应用于两阶段提交?
谢谢
如果TransactionScope检测到只有一个连接,它将不会升级为分布式事务。这意味着对于本地事务,TransactionScope与BeginTransaction一样轻量级,但使用起来更加容易。
在绝大多数情况下,TransactionScope 更易于使用,特别是与 "using" 块结合使用。
但是要小心,如果您使用 SQL Server 2000,则需要注意。它与 TransactionScope 不兼容,并且总是升级为分布式事务。
请参见此链接获取更多详细信息。