Я читал о TransactionScope и у меня возник вопрос о его совместимости с транзакциями ADO.Net. Прямо сейчас у нас есть несколько методов доступа к данным, каждый из которых вызывает сохраненную процедуру, запускает и фиксирует свои собственные индивидуальные транзакции. Простые, стандартные методы выглядят так:
sqlCommand = //create SQLCommand with Stored proc
SqlTransaction myTransaction = myConnection.BeginTransaction();
sqlCommand.Transaction = sqlTransaction;
sqlCommand.Execute();
sqlTransaction.Commit();
Я немного упростил, но идею вы поняли.
Теперь мне нужно вызвать два из этих методов класса последовательно и зафиксировать или откатить их как команду из моего бизнес-уровня. Я не могу изменять методы данных, поэтому я подумал о том, чтобы поместить два вызова в блок TransactionScope.
Если я сделаю это, какие параметры мне следует использовать при создании TransactionScope? Я уже пробовал это с помощью параметра TransactionScopeOption.RequiresNew, и все вроде работает, но это просто я экспериментирую, и я не уверен, что это правильный путь. (Здесь я отмечу, что это исключительно транзакции SQL, выполняемые на одном сервере SQL.)
Я вижу, что TransactionScope имеет параметры конструктора для работы с транзакциями COM +. Поскольку я использую транзакции ADO.Net, актуально ли это здесь? Спасибо за совет.