我正在处理一个有趣的情况,我在单个事务中执行许多数据库更新。如果这些更新因任何原因失败,事务将回滚。
IDbTransaction transaction
try {
transaction = connection.BeginTransaction();
// do lots of updates (where at least one fails)
transaction.Commit();
} catch {
transaction.Rollback(); // results in a timeout exception
} finally {
connection.Dispose();
}
我相信上面的代码通常被认为是在事务中执行数据库更新的标准模板。
我面临的问题是,虽然 transaction.Rollback() 被发布到 SQL Server,但它也在客户端超时。
无论如何区分发出回滚命令的超时和该命令执行完成的超时?
在此先感谢,本