В многочисленных примерах, где говорится о явном откате транзакций базы данных, говорится следующее:
using (var transaction = ...)
{
try
{
// do some reading and/or writing here
transaction.Commit();
}
catch (SqlException ex)
{
// explicit rollback
transaction.Rollback();
}
}
Однако я, как правило, делаю это:
using (var transaction = ...)
{
// do some reading and/or writing here
transaction.Commit();
}
Когда возникает исключение, я просто полагаюсь на неявное откат транзакций, которые не выполняются.
Есть ли какие-либо проблемы, связанные с этим неявным поведением? У кого-нибудь есть убедительная причина, почему я не должен делать это таким образом?