公式の ドキュメント を探す機会があったのでメモ。
トランザクション スコープを使用した暗黙的なトランザクションの実装 | Microsoft Docs
TransactionScope 分離レベルの設定の箇所 から抜粋
既定では、トランザクションは Serializable に設定された分離レベルで実行されます。
C# の ソース は
— Masayuki Ozawa (@Masayuki_Ozawa) 2021年6月22日
internal static IsolationLevel DefaultIsolationLevel { get { TransactionsEtwProvider etwLog = TransactionsEtwProvider.Log; if (etwLog.IsEnabled()) { etwLog.MethodEnter(TraceSourceType.TraceSourceBase, "TransactionManager.get_DefaultIsolationLevel"); etwLog.MethodExit(TraceSourceType.TraceSourceBase, "TransactionManager.get_DefaultIsolationLevel"); } return IsolationLevel.Serializable; } }
なんで既定が Serializable なんって疑問は、これ見たらなるほどねーって感じ。
c# - Why is System.Transactions TransactionScope default Isolationlevel Serializable - Stack Overflow