有很多实例建议明确回滚数据库事务,大致如下:
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();
}
当发生异常时,我只依赖于未提交的事务隐式回滚。
依靠这种隐式行为有什么问题吗?是否有人有令人信服的理由,说明我不应该这样做?