当使用 ado.net 并在单个事务中创建与 MS SQL Server 数据库的多个连接(使用 System.Transactions.TransactionScope)时,System.Transactions 是否将事务从轻量级事务管理器提升为分布式事务协调器( Vista 上的内核事务协调器),即使所有连接对象的连接字符串都相同?
文档对于这种具体情况有些含糊不清。它说,如果在事务期间打开另一个到服务器的连接,事务将会提升,但它没有说明是否一直这样做,或者仅当连接字符串不同时才这样做。如果连接字符串相同,它会提升事务,这对我来说是没有意义的,但如果是这样,它基本上会使轻量级事务管理器完全无用,IMO。
最佳答案
不幸的是,在当前版本中,它总是会提升交易量。
正如您所说,这使得 TransactionScope 的用处比其他情况要少得多。我相信有计划在未来的版本中改变这一点。
关于.net - 单个事务下具有相同连接字符串的多个连接,提升事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/394702/