/// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used 
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        public QueryCompilationContext(
            [NotNull] IModel model,
            [NotNull] ILogger logger,
            [NotNull] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
            [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
            [NotNull] ILinqOperatorProvider linqOperatorProvider,
            [NotNull] Type contextType,
            bool trackQueryResults)
        {
            Check.NotNull(model, nameof(model));
            Check.NotNull(entityQueryModelVisitorFactory, nameof(entityQueryModelVisitorFactory));
            Check.NotNull(requiresMaterializationExpressionVisitorFactory, nameof(requiresMaterializationExpressionVisitorFactory));
            Check.NotNull(linqOperatorProvider, nameof(linqOperatorProvider));
            Check.NotNull(contextType, nameof(contextType));

            Model = model;
            Logger = logger;

            _entityQueryModelVisitorFactory = entityQueryModelVisitorFactory;
            _requiresMaterializationExpressionVisitorFactory = requiresMaterializationExpressionVisitorFactory;

            LinqOperatorProvider = linqOperatorProvider;
            ContextType = contextType;
            TrackQueryResults = trackQueryResults;
        }
        public QueryCompilationContext(
            [NotNull] IModel model,
            [NotNull] ILogger logger,
            [NotNull] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
            [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
            [NotNull] ILinqOperatorProvider linqOperatorProvider,
            [NotNull] Type contextType,
            bool trackQueryResults)
        {
            Check.NotNull(model, nameof(model));
            Check.NotNull(entityQueryModelVisitorFactory, nameof(entityQueryModelVisitorFactory));
            Check.NotNull(requiresMaterializationExpressionVisitorFactory, nameof(requiresMaterializationExpressionVisitorFactory));
            Check.NotNull(linqOperatorProvider, nameof(linqOperatorProvider));
            Check.NotNull(contextType, nameof(contextType));

            Model  = model;
            Logger = logger;

            _entityQueryModelVisitorFactory = entityQueryModelVisitorFactory;
            _requiresMaterializationExpressionVisitorFactory = requiresMaterializationExpressionVisitorFactory;

            LinqOperatorProvider = linqOperatorProvider;
            ContextType          = contextType;
            TrackQueryResults    = trackQueryResults;
        }
示例#3
0
 /// <summary>
 ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
 ///     directly from your code. This API may change or be removed in future releases.
 /// </summary>
 public QueryCompilationContextDependencies With(
     [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory) => new QueryCompilationContextDependencies(
     Model,
     Logger,
     EntityQueryModelVisitorFactory,
     Check.NotNull(requiresMaterializationExpressionVisitorFactory, nameof(requiresMaterializationExpressionVisitorFactory)),
     CurrentContext);
 public QuerySourcesRequiringMaterializationFinder(
     IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
     EntityQueryModelVisitor queryModelVisitor,
     ISet <IQuerySource> querySourcesRequiringMaterialization)
 {
     _requiresMaterializationExpressionVisitorFactory = requiresMaterializationExpressionVisitorFactory;
     _queryModelVisitor = queryModelVisitor;
     _querySourcesRequiringMaterialization = querySourcesRequiringMaterialization;
 }
 public MySQLQueryCompilationContextFactory(
     [NotNull] IModel model,
     [NotNull] ISensitiveDataLogger <MySQLQueryCompilationContextFactory> logger,
     [NotNullAttribute] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
     [NotNullAttribute] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
     [NotNullAttribute] MethodInfoBasedNodeTypeRegistry methodInfoBasedNodeTypeRegistry,
     [NotNullAttribute] ICurrentDbContext currentContext) :
     base(model, logger, entityQueryModelVisitorFactory, requiresMaterializationExpressionVisitorFactory, methodInfoBasedNodeTypeRegistry, currentContext)
 {
 }
示例#6
0
 public MySQLQueryCompilationContext(
     [NotNull] IModel model,
     [NotNull] ISensitiveDataLogger logger,
     [NotNull] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
     [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
     [NotNull] ILinqOperatorProvider linqOperatorProvider,
     [NotNull] IQueryMethodProvider queryMethodProvider,
     [NotNull] Type contextType, bool trackQueryResults)
     : base(model, logger, entityQueryModelVisitorFactory, requiresMaterializationExpressionVisitorFactory, linqOperatorProvider, queryMethodProvider, contextType, trackQueryResults)
 {
 }
 public SqlServerQueryCompilationContextFactory(
     [NotNull] ISensitiveDataLogger <SqlServerQueryCompilationContextFactory> logger,
     [NotNull] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
     [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
     [NotNull] DbContext context)
     : base(Check.NotNull(logger, nameof(logger)),
            Check.NotNull(entityQueryModelVisitorFactory, nameof(entityQueryModelVisitorFactory)),
            Check.NotNull(requiresMaterializationExpressionVisitorFactory, nameof(requiresMaterializationExpressionVisitorFactory)),
            Check.NotNull(context, nameof(context)))
 {
 }
 public LiteDBQueryCompilationContext(IModel model,
                                      ILogger logger,
                                      IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
                                      IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
                                      ILinqOperatorProvider linqOperatorProvider,
                                      Type contextType,
                                      IQueryMethodProvider queryMethodProvider,
                                      bool trackQueryResults)
     : base(model, logger, entityQueryModelVisitorFactory, requiresMaterializationExpressionVisitorFactory, linqOperatorProvider, contextType, trackQueryResults)
 {
     _queryMethodProvider = queryMethodProvider;
 }
 public RelationalQueryCompilationContextFactory(
     [NotNull] ILoggerFactory loggerFactory,
     [NotNull] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
     [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
     [NotNull] DbContext context)
     : base(
         Check.NotNull(loggerFactory, nameof(loggerFactory)),
         Check.NotNull(entityQueryModelVisitorFactory, nameof(entityQueryModelVisitorFactory)),
         Check.NotNull(requiresMaterializationExpressionVisitorFactory, nameof(requiresMaterializationExpressionVisitorFactory)),
         Check.NotNull(context, nameof(context)))
 {
 }
 public LiteDBQueryCompilationContextFactory(
     IModel model,
     ISensitiveDataLogger <LiteDBQueryCompilationContextFactory> logger,
     IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
     IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
     MethodInfoBasedNodeTypeRegistry methodInfoBasedNodeTypeRegistry,
     ICurrentDbContext currentContext)
     : base(model, logger,
            entityQueryModelVisitorFactory,
            requiresMaterializationExpressionVisitorFactory,
            currentContext)
 {
 }
示例#11
0
        public MongoDbQueryCompilationContext([NotNull] IModel model,
                                              [NotNull] ILogger logger,
                                              [NotNull] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
                                              [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
                                              [NotNull] ILinqOperatorProvider linqOperatorProvider,
                                              [NotNull] Type contextType,
                                              [NotNull] IQueryMethodProvider queryMethodProvider,
                                              bool trackQueryResults)
            : base(model, logger, entityQueryModelVisitorFactory, requiresMaterializationExpressionVisitorFactory, linqOperatorProvider, contextType, trackQueryResults)
        {
            Check.NotNull(queryMethodProvider, nameof(queryMethodProvider));

            _queryMethodProvider = queryMethodProvider;
        }
示例#12
0
 public MongoDbQueryCompilationContextFactory(
     [NotNull] IModel model,
     [NotNull] ISensitiveDataLogger <MongoDbQueryCompilationContextFactory> logger,
     [NotNull] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
     [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
     [NotNull] MethodInfoBasedNodeTypeRegistry methodInfoBasedNodeTypeRegistry,
     [NotNull] ICurrentDbContext currentContext)
     : base(
         Check.NotNull(model, nameof(model)),
         Check.NotNull(logger, nameof(logger)),
         Check.NotNull(entityQueryModelVisitorFactory, nameof(entityQueryModelVisitorFactory)),
         Check.NotNull(requiresMaterializationExpressionVisitorFactory, nameof(requiresMaterializationExpressionVisitorFactory)),
         Check.NotNull(currentContext, nameof(currentContext)))
 {
 }
 public SqlServerQueryCompilationContext(
     [NotNull] ILogger logger,
     [NotNull] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
     [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
     [NotNull] ILinqOperatorProvider linqOpeartorProvider,
     [NotNull] IQueryMethodProvider queryMethodProvider,
     [NotNull] Type contextType)
     : base(
         Check.NotNull(logger, nameof(logger)),
         Check.NotNull(entityQueryModelVisitorFactory, nameof(entityQueryModelVisitorFactory)),
         Check.NotNull(requiresMaterializationExpressionVisitorFactory, nameof(requiresMaterializationExpressionVisitorFactory)),
         Check.NotNull(linqOpeartorProvider, nameof(linqOpeartorProvider)),
         Check.NotNull(queryMethodProvider, nameof(queryMethodProvider)),
         Check.NotNull(contextType, nameof(contextType)))
 {
 }
 public RelationalQueryCompilationContextFactory(
     [NotNull] IModel model,
     [NotNull] ISensitiveDataLogger <RelationalQueryCompilationContextFactory> logger,
     [NotNull] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
     [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
     [NotNull] MethodInfoBasedNodeTypeRegistry methodInfoBasedNodeTypeRegistry,
     [NotNull] DbContext context)
     : base(
         Check.NotNull(model, nameof(model)),
         Check.NotNull(logger, nameof(logger)),
         Check.NotNull(entityQueryModelVisitorFactory, nameof(entityQueryModelVisitorFactory)),
         Check.NotNull(requiresMaterializationExpressionVisitorFactory, nameof(requiresMaterializationExpressionVisitorFactory)),
         Check.NotNull(context, nameof(context)))
 {
     methodInfoBasedNodeTypeRegistry
     .Register(FromSqlExpressionNode.SupportedMethods, typeof(FromSqlExpressionNode));
 }
        /// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        public QueryCompilationContext(
            [NotNull] QueryCompilationContextDependencies dependencies,
            [NotNull] ILinqOperatorProvider linqOperatorProvider,
            bool trackQueryResults)
        {
            Check.NotNull(dependencies, nameof(dependencies));
            Check.NotNull(linqOperatorProvider, nameof(linqOperatorProvider));

            Model  = dependencies.Model;
            Logger = dependencies.Logger;

            _entityQueryModelVisitorFactory = dependencies.EntityQueryModelVisitorFactory;
            _requiresMaterializationExpressionVisitorFactory = dependencies.RequiresMaterializationExpressionVisitorFactory;

            LinqOperatorProvider = linqOperatorProvider;
            ContextType          = dependencies.CurrentContext.Context.GetType();
            TrackQueryResults    = trackQueryResults;
        }
示例#16
0
        public QueryCompilationContextFactory(
            [NotNull] ILogger <QueryCompilationContextFactory> logger,
            [NotNull] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
            [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
            [NotNull] DbContext context)
        {
            Check.NotNull(logger, nameof(logger));
            Check.NotNull(entityQueryModelVisitorFactory, nameof(entityQueryModelVisitorFactory));
            Check.NotNull(requiresMaterializationExpressionVisitorFactory, nameof(requiresMaterializationExpressionVisitorFactory));
            Check.NotNull(context, nameof(context));

            Logger = logger;

            EntityQueryModelVisitorFactory = entityQueryModelVisitorFactory;
            RequiresMaterializationExpressionVisitorFactory = requiresMaterializationExpressionVisitorFactory;

            _context = context;
        }
示例#17
0
        /// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        public QueryCompilationContextDependencies(
            [NotNull] IModel model,
            [NotNull] IDiagnosticsLogger <DbLoggerCategory.Query> logger,
            [NotNull] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
            [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
            [NotNull] ICurrentDbContext currentContext)
        {
            Check.NotNull(model, nameof(model));
            Check.NotNull(logger, nameof(logger));
            Check.NotNull(entityQueryModelVisitorFactory, nameof(entityQueryModelVisitorFactory));
            Check.NotNull(requiresMaterializationExpressionVisitorFactory, nameof(requiresMaterializationExpressionVisitorFactory));
            Check.NotNull(currentContext, nameof(currentContext));

            Model  = model;
            Logger = logger;
            EntityQueryModelVisitorFactory = entityQueryModelVisitorFactory;
            RequiresMaterializationExpressionVisitorFactory = requiresMaterializationExpressionVisitorFactory;
            CurrentContext = currentContext;
        }
示例#18
0
 public MySqlQueryCompilationContext(
     [NotNull] IModel model,
     [NotNull] ISensitiveDataLogger logger,
     [NotNull] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
     [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
     [NotNull] ILinqOperatorProvider linqOpeartorProvider,
     [NotNull] IQueryMethodProvider queryMethodProvider,
     [NotNull] Type contextType,
     bool trackQueryResults)
     : base(
         Check.NotNull(model, nameof(model)),
         Check.NotNull(logger, nameof(logger)),
         Check.NotNull(entityQueryModelVisitorFactory, nameof(entityQueryModelVisitorFactory)),
         Check.NotNull(requiresMaterializationExpressionVisitorFactory, nameof(requiresMaterializationExpressionVisitorFactory)),
         Check.NotNull(linqOpeartorProvider, nameof(linqOpeartorProvider)),
         Check.NotNull(queryMethodProvider, nameof(queryMethodProvider)),
         Check.NotNull(contextType, nameof(contextType)),
         trackQueryResults)
 {
 }
示例#19
0
        /// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        public RelationalQueryCompilationContext(
            [NotNull] IModel model,
            [NotNull] ISensitiveDataLogger logger,
            [NotNull] IEntityQueryModelVisitorFactory entityQueryModelVisitorFactory,
            [NotNull] IRequiresMaterializationExpressionVisitorFactory requiresMaterializationExpressionVisitorFactory,
            [NotNull] ILinqOperatorProvider linqOperatorProvider,
            [NotNull] IQueryMethodProvider queryMethodProvider,
            [NotNull] Type contextType,
            bool trackQueryResults)
            : base(
                Check.NotNull(model, nameof(model)),
                Check.NotNull(logger, nameof(logger)),
                Check.NotNull(entityQueryModelVisitorFactory, nameof(entityQueryModelVisitorFactory)),
                Check.NotNull(requiresMaterializationExpressionVisitorFactory, nameof(requiresMaterializationExpressionVisitorFactory)),
                Check.NotNull(linqOperatorProvider, nameof(linqOperatorProvider)),
                Check.NotNull(contextType, nameof(contextType)),
                trackQueryResults)
        {
            Check.NotNull(queryMethodProvider, nameof(queryMethodProvider));

            QueryMethodProvider            = queryMethodProvider;
            ParentQueryReferenceParameters = new List <string>();
        }