/// <summary> /// Disposes the transaction, rolling it back if it is still pending. /// </summary> protected override void Dispose(bool disposing) { if (_isDisposed) { return; } if (disposing && !IsCompleted) { _connector.CloseOngoingOperations(async: false).GetAwaiter().GetResult(); Rollback(); } Clear(); base.Dispose(disposing); _isDisposed = true; }