ひっそりと生きるプログラマのブログ

日頃気になった事なりを書き留めるブログです。関心ごとは多くもう少し更新頻度を上げたいところです。

現在、実行中のトランザクション

現在のトランザクションアンビエントトランザクション?)は、
Transaction.Currentにて取得できるようです。

以下のコードから分かるように、
TransactionScope内だと not null となります。

https://msdn.microsoft.com/ja-jp/library/system.transactions.transaction.current%28v=vs.110%29.aspx

Console.WriteLine(Transaction.Current != null);
using (TransactionScope s = new TransactionScope())
{
    Console.WriteLine(Transaction.Current != null);
}
Console.WriteLine(Transaction.Current != null);
Console.ReadLine();

TransactionScopeのインスタンス生成時からトランザクションは開始されるので、
その辺を考慮して設計および実装する必要がありそうです。