Trong đoạn mã dưới đây nếu có ngoại lệ được ném trong khi thực hiện các câu lệnh SQL chúng ta nên mong đợi một rollback ngầm trên giao dịch như giao dịch đã không cam kết, nó đi ra khỏi phạm vi và nó được xử lý:Thực tiễn tốt hơn là gọi lại giao dịch một cách rõ ràng hoặc để một ngoại lệ kích hoạt một cuộn ngược tiềm ẩn?
using (DbTransaction tran = conn.BeginTransaction())
{
//
// Execute SQL statements here...
//
tran.Commit();
}
là ở trên một thực tế chấp nhận được, hay người ta phải nắm bắt những ngoại lệ và thực hiện một cách rõ ràng một cuộc gọi đến tran.Rollback() như hình dưới đây:
using (DbTransaction tran = conn.BeginTransaction())
{
try
{
//
// Execute SQL statements here...
//
tran.Commit();
}
catch
{
tran.Rollback();
throw;
}
}
cái nào truyền đạt ý định tốt nhất? –