В приведенном ниже коде, если какое-либо исключение возникает при выполнении операторов SQL, мы должны ожидать неявного откат транзакции по мере того, как транзакция не была выполнена, она выходит за пределы области действия и удаляется:
using (DbTransaction tran = conn.BeginTransaction())
{
//
// Execute SQL statements here...
//
tran.Commit();
}
Является ли это вышеприведенной практикой или нужно уловить исключение и явно вызвать вызов tran.Rollback(), как показано ниже:
using (DbTransaction tran = conn.BeginTransaction())
{
try
{
//
// Execute SQL statements here...
//
tran.Commit();
}
catch
{
tran.Rollback();
throw;
}
}