如何确定SQLConnection是否属于当前环境事务System.Transactions.Transaction.Current?

时间:2014-12-09 18:39:34

标签: transactions transactionscope sqlconnection dts

我想知道的是,如果给定的SQLConnection 入选并且在给定时间内使用当前的环境交易,我的意思是,将某些内容放入手表中在调试时,允许我知道是否有一个连接与当前环境事务一起登记。我正在调试代码,这些代码会创建TransactionScope类的多个实例,并且在创建TransactionScope.Complete的新实例之前,代码不会调用TransactionScopeDisposeTransactionScope。因此,如果我能够知道当前SQLConnection中是否已登记给定的ambient transaction将非常有用。

顺便说一句,TransactionScope不是使用using语句创建的,因此很难读取代码SQLConnection属于TransactionScope个实例的内容。

1 个答案:

答案 0 :(得分:0)

登记的交易存储在SqlInternalConnection的{​​{3}}中。此字段设置为EnlistedTransaction field。您可以通过反射访问该字段。