Управление транзакциями .NET без TransactionScope - PullRequest
1 голос
/ 14 февраля 2011

Я активно использовал TransactionScope в своем приложении и был счастлив.Но теперь я столкнулся с ситуацией, когда TransactionScope недостаточно гибок: прежде всего потому, что я не могу динамически изменить IsolationLevel.

Какой самый простой способ заменить TransactionScope транзакцией базы данных, которой можно управлять вручную?Одной из функций, которые я хочу сохранить, является поддержка транзакций кросс-соединений.

1 Ответ

1 голос
/ 14 февраля 2011

Я думаю, что вывод состоит в том, что вы не можете сделать это: иметь как распределенную транзакцию, так и изменить уровень изоляции.

Нельзя изменить уровень изоляции транзакции после ее начала.

Для использования транзакций кросс-соединения вам необходимо использовать объем транзакции или транзакцию COM + через корпоративные сервисы. В обоих случаях вы не можете изменить уровень изоляции после создания транзакции.

Можно изменить уровень изоляции SQL-соединения с помощью оператора SQL "Установить уровень изоляции транзакции".

...