У меня есть сервер приложений N-уровня C# ASP .Net, который использует хранимые процедуры для связи с базой данных.Изолированное совершение транзакции в SQL
У меня есть служебный уровень, который откатывает все транзакции ADO .net, если выбрано исключение, используя TransactionScope.requiresNew.
В моей хранимой процедуре я хочу отслеживать номера попыток входа, поэтому мы хотим сохранить структуру транзакций как есть, но хотим иметь изолированную транзакцию, которую мы совершаем.
Как это сделать?
Я попытался использовать новый TransactionScope.RequiresNew в нашем слое данных, но это не имеет никакого эффекта.
Hi @nonnb, спасибо за это. Что я подавляю? – Russell
После небольшого чтения (http://msdn.microsoft.com/en-us/library/ms973865.aspx) у Suppress нет транзакции вообще. Он также не использует внешнюю транзакцию, которую я хочу. Не уверен, предпочитаю ли я сделку или нет. У меня есть одна в моей хранимой процедуре (BEGIN TRANSACTION, COMMIT) ... – Russell
Привет, Рассел. Я редактировал свое оригинальное сообщение, так как мой комментарий был слишком большим. Если сможешь. Поскольку похоже, что у вас есть стратегия управления транзакциями из вашего .NET-кода (например, Service или Business Tiers), вы бы рекомендовали отказаться от BEGIN TRAN/COMMIT TRAN от ваших sprocs. TransactionScope отменяет это. – StuartLC