public StorageModel GetSchema()
        {
            if (context.ExtractedModelCache != null)
            {
                return(context.ExtractedModelCache);
            }

            var converter = new SqlModelConverter(services, GetSqlSchema(), GetPartialIndexes());
            var result    = converter.Run();

            context.ExtractedModelCache = result;
            return(result);
        }
        public async Task <StorageModel> GetSchemaAsync(CancellationToken token)
        {
            if (context.ExtractedModelCache != null)
            {
                return(context.ExtractedModelCache);
            }

            var schemaExtractionResult = await GetSqlSchemaAsync(token).ConfigureAwait(false);

            var converter = new SqlModelConverter(services, schemaExtractionResult, GetPartialIndexes());
            var result    = converter.Run();

            context.ExtractedModelCache = result;
            return(result);
        }