Хорошо, чтобы ответить на ваш вопрос, мы сначала должны выяснить, почему мы используем области транзакций для начала.
например,
Представим, что вы хотите купить машину, но у вас уже есть машина, поэтому вы хотите продать свою.
public bool TradeCar(Car myCar, Car otherCar)
{
otherCar.Owner = "Me";
myCar.Owner = "Other Dude";
return true;
}
Теперь на секунду представьте, что приложение почему-то зависло в строке, где myCar.Owner = "Other Dude"
, теперь у вас 2 машины!
Это замечательно, если вы вор, но мы все хорошие ребята, мы хотим, чтобы все прошло как можно более гладко.
Итак, мы добавляем область транзакции!
using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
otherCar.Owner = "Me";
myCar.Owner = "Other Dude";
return true;
}
Теперь, если ваш код вылетает по какой-либо причине, вы оба гарантируете, что не потеряете их машину!
Так что, пока вы ничего не делаете, вы можете оставить область транзакции в стороне, я обычно использую ее в начале вызова, если собираюсь выполнить более 1 операции с базой данных.