/// <inheritdoc /> protected override void DoDispose() { if (Interlocked.Exchange(ref _cleanup, 1L) != 0L) { return; } _command.SafelyDispose(); _transaction.SafelyRollback(); _transaction.SafelyDispose(); _connection.SafelyClose(); _connection.SafelyDispose(); }