.net 单个事务下具有相同连接字符串的多个连接,提升的事务?

.net 单个事务下具有相同连接字符串的多个连接,提升的事务?,.net,sql-server,ado.net,transactions,msdtc,.net,Sql Server,Ado.net,Transactions,Msdtc,使用ado.net并在单个事务(使用System.Transactions.TransactionScope)中创建到MS SQL Server数据库的多个连接时,System.Transactions是否将事务从轻量级事务管理器提升到分布式事务协调器(Vista上的内核事务协调器),即使所有连接对象的连接字符串都相同 关于这一具体情况,文件有点含糊不清。它说,如果在事务期间打开了与服务器的另一个连接,则事务将被提升,但它没有说事务是否一直这样做,或者仅当连接字符串不同时才会提升。在我看来,如果

使用ado.net并在单个事务(使用System.Transactions.TransactionScope)中创建到MS SQL Server数据库的多个连接时,System.Transactions是否将事务从轻量级事务管理器提升到分布式事务协调器(Vista上的内核事务协调器),即使所有连接对象的连接字符串都相同


关于这一具体情况,文件有点含糊不清。它说,如果在事务期间打开了与服务器的另一个连接,则事务将被提升,但它没有说事务是否一直这样做,或者仅当连接字符串不同时才会提升。在我看来,如果连接字符串相同,它将提升事务是没有意义的,但如果是这样,它基本上会使轻量级事务管理器完全无用。不幸的是,在当前版本中,它总是提升事务


正如您所说,这使得TransactionScope比其他方式的用处要小得多。我相信有计划在未来的版本中改变这一点。

啊,太糟糕了。您是否有任何策略可以绕过此“功能?”我唯一的猜测是在用户请求期间保持会话级别(不一定通过会话对象)连接对象打开,并通过数据访问层延迟所有调用以使用它。我要开始另一个问题