当使用ado.net,并在单个事务中创建与MS SQL Server数据库的多个连接时(使用System.Transactions.TransactionScope),System.Transactions是否将事务从轻量级事务管理器提升到分布式事务协调器( Vista上的内核事务协调器,即使所有连接对象的连接字符串都相同?
文档在这种特定情况下有些含糊不清。它表示如果在事务期间向服务器打开另一个连接,事务将升高,但是它不会说它是否一直这样做,或者仅在连接字符串不同时才这样做。如果连接字符串相同,它会提升事务是没有意义的,但如果确实如此,它基本上会使轻量级事务管理器完全无用,IMO。
答案 0 :(得分:3)
在当前版本中,它总是提升交易。不幸的是。
正如您所说,使TransactionScope的实用性远远低于其他情况。我相信有计划在未来的版本中改变它。