Цель транзакций - убедиться, что вы не зафиксировали сеанс с грязными данными или ошибками.Рассмотрим очень простой случай транзакции размещения заказа на книгу.
Вы, вероятно, выполните следующие действия: a) Проверьте, существует ли книга в данный момент.б) Прочтите данные клиента и посмотрите, есть ли у него что-нибудь в корзине.c) Обновите счетчик книг. d) Сделайте запись для заказа
. Теперь рассмотрим случай, когда вы сталкиваетесь с ошибкой при вводе заказа, если вы хотите, чтобы другие изменения были отменены, и этокогда вы откатываете транзакцию.
Как вы это делаете?Ну, есть много способов.Одним из способов для веб-приложений является отслеживание объекта HTTP Error следующим образом:
if(HttpContext.Current != null && HttpContext.Current.Error != null)
transaction.Rollback();
В идеале не следует нарушать шаблон единиц работы, используя явные блоки транзакций.Старайтесь избегать этого как можно больше