我在使用一个 IDbTransaction 的 using 语句块,但我不确定如果在 using 语句块内抛出异常时它是否会被回滚。我知道 using 语句块将强制调用 Dispose() 方法……但是有人知道 Rollback() 方法是否也是这样的吗?
更新:另外,我是否需要显式调用 Commit() 方法,就像下面的代码一样,还是 using 语句块会自动处理呢?
我的代码看起来像这样:
using Microsoft.Practices.EnterpriseLibrary.Data;
...
using(IDbConnection connection = DatabaseInstance.CreateConnection())
{
connection.Open();
using(IDbTransaction transaction = connection.BeginTransaction())
{
//Attempt to do stuff in the database
//potentially throw an exception
transaction.Commit();
}
}