Ich habe eine IDbTransaction in einer using-Anweisung, bin mir jedoch nicht sicher, ob sie zurückgesetzt wird, wenn in einer using-Anweisung eine Ausnahme ausgelöst wird. Ich weiß, dass eine using-Anweisung den Aufruf von Dispose () erzwingt ... aber weiß jemand, ob dies auch für Rollback () gilt?
Update: Muss ich Commit () auch explizit aufrufen, wie unten beschrieben, oder wird dies auch durch die using-Anweisung erledigt?
Mein Code sieht ungefähr so aus:
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();
}
}