public override void Rollback() { if (transaction == null) throw new InvalidOperationException ("Call BeginTransaction first"); try { transaction.Rollback (); connection.Close (); } finally { transaction = null; connection = null; } }