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



我想知道的是,如果给定的SQLConnection在给定的时间内与当前环境事务一起登记,我的意思是,在调试时在手表中放入一些东西,让我知道一个连接是否与当前环境事务一起登记。我正在调试创建TransactionScope类的多个实例的代码,并且在创建TransactionScope的新实例之前,代码既不调用TransactionScope.Complete也不调用TransactionScopeDispose。因此,如果我能知道给定的SQLConnection是否包含在当前ambient transaction中,那将非常有用。

顺便说一句,TransactionScope不是使用using语句创建的,因此很难知道阅读代码SQLConnection属于哪个实例TransactionScope

登记的事务存储在SqlInternalConnectionEnlistedTransaction字段中。此字段在 EnlistNonNull 方法中设置。您可以通过反射访问该字段。

最新更新