Tengo un IDbTransaction en una declaración de uso, pero no estoy seguro de si se revertirá si se lanza una excepción en una declaración de uso. Sé que una declaración de uso hará cumplir la llamada de Dispose () ... pero ¿alguien sabe si lo mismo es cierto para Rollback ()?
Actualización: Además, ¿necesito llamar a Commit () explícitamente como lo he hecho a continuación o también se ocupará de eso la declaración de uso?
Mi código se parece a esto:
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();
}
}