protected virtual void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    _databaseImpl = null;
                }
            }

            _disposed = true;
        }
 internal InMemoryDatabaseClient(IInMemoryDatabaseImpl databaseImpl)
 {
     _databaseImpl = databaseImpl ?? throw new ArgumentNullException(nameof(databaseImpl));
 }