поиск TransactionScopeOption родительской области транзакции в дочерней области транзакций - PullRequest
0 голосов
/ 01 июня 2011

В родительской области транзакции у меня есть TransactionScopeOption of Required.

Позже во внутренней области транзакции мне нужно проверить TransactionScopeOption родительской области транзакции.

Как это возможно ..

Пример

Parent : using (TransactionScope transactionScopeParent = new TransactionScope(TransactionScopeOption.Required, transactionOptions))
{
....
method()
}

method()
{
here i need to check the TransactionScopeOption of this transaction scope's parent one and then set this transaction scope to be having the same TransactionScopeOption.

using (TransactionScope transactionScopeChild = new TransactionScope(TransactionScopeOption.Required, transactionOptions))
}

возможно ли это.

Ответы [ 2 ]

0 голосов
/ 11 октября 2013

Судя по вашим комментариям к ответу @ Одеда, вы, похоже, хотите

  • MS SQL соединения для участия в System.Transactions.Transaction s
  • MySQL соединения, чтобы не участвовать

Чтобы получить такое поведение, вам просто нужно добавить

AutoEnlist = False;

к вашей строке подключения MySQL :

Если для AutoEnlist установлено значение true, которое является значением по умолчанию, соединение открытый с помощью TransactionScope участвует в этой области, он фиксирует когда сфера фиксируется и откатывается, если TransactionScope не совершить. Тем не менее, эта функция считается чувствительной к безопасности и поэтому не может использоваться в среде со средним уровнем доверия.

0 голосов
/ 01 июня 2011

В этом нет необходимости.

Если «родитель» TransactionScope равен Required, вложенный будет зарегистрирован в транзакциях уже.

Если это не так,вложенный не станет автоматически «обязательным».

Единственное исключение - если вы явно установите для вложенного TransactionScope значение RequiresNew, когда начнется новая транзакция.

...