Tôi có một IDbTransaction trong một câu lệnh using nhưng tôi không chắc liệu nó có được khôi phục hay không nếu một ngoại lệ được đưa ra trong một câu lệnh using. Tôi biết rằng một câu lệnh using sẽ thực thi việc gọi Dispose () ... nhưng có ai biết điều đó có đúng với Rollback () không?
Cập nhật: Ngoài ra, tôi có cần gọi commit () một cách rõ ràng như tôi có bên dưới hay điều đó cũng sẽ được xử lý bởi câu lệnh using?
Mã của tôi trông giống như sau:
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();
}
}