public SchemaExtractionResult GetSqlSchema()
        {
            if (context.ExtractedSqlModelCache != null)
            {
                return(context.ExtractedSqlModelCache);
            }

            var schema        = new SchemaExtractionResult(executor.Extract(services.MappingResolver.GetSchemaTasks()));
            var handledSchema = new IgnoreRulesHandler(schema, services.Configuration, services.MappingResolver).Handle();

            context.ExtractedSqlModelCache = handledSchema;
            return(handledSchema);
        }
        public async Task <SchemaExtractionResult> GetSqlSchemaAsync(CancellationToken token)
        {
            if (context.ExtractedSqlModelCache != null)
            {
                return(context.ExtractedSqlModelCache);
            }

            var sqlExtractionTasks  = services.MappingResolver.GetSchemaTasks();
            var sqlExtractionResult = await executor.ExtractAsync(sqlExtractionTasks, token).ConfigureAwait(false);

            var schema        = new SchemaExtractionResult(sqlExtractionResult);
            var handledSchema = new IgnoreRulesHandler(schema, services.Configuration, services.MappingResolver).Handle();

            context.ExtractedSqlModelCache = handledSchema;
            return(handledSchema);
        }