Есть ли способ проверить, выполняется ли код в TransactionScope?
Что-то вроде:
if(TransactionScope.Started|Enabled){...}
да есть способ (непосредственно скопированный из документации MSDN TransactionScope ):
Окружающая транзакция - это транзакция, в которой выполняется ваш код. Вы можно получить ссылку на окружающий транзакция путем вызова статического Текущее свойство Сделки класс.
Посмотрите на транзакцию. Текущий .
Вы можете проверить свойство Transaction.Current :
if(Transaction.Current != null) { // running inside a transaction }