Example #1
0
        /// <summary>
        ///     <para>
        ///         Creates the service dependencies parameter object for a <see cref="RelationalQueryModelVisitorFactory" />.
        ///     </para>
        ///     <para>
        ///         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.
        ///     </para>
        ///     <para>
        ///         Do not call this constructor directly from either provider or application code as it may change
        ///         as new dependencies are added. Instead, use this type in your constructor so that an instance
        ///         will be created and injected automatically by the dependency injection container. To create
        ///         an instance with some dependent services replaced, first resolve the object from the dependency
        ///         injection container, then replace selected services using the 'With...' methods. Do not call
        ///         the constructor at any point in this process.
        ///     </para>
        /// </summary>
        public RelationalQueryModelVisitorDependencies(
            [NotNull] IRelationalResultOperatorHandler relationalResultOperatorHandler,
            [NotNull] IRelationalAnnotationProvider relationalAnnotationProvider,
            [NotNull] IIncludeExpressionVisitorFactory includeExpressionVisitorFactory,
            [NotNull] ISqlTranslatingExpressionVisitorFactory sqlTranslatingExpressionVisitorFactory,
            [NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory,
            [NotNull] IConditionalRemovingExpressionVisitorFactory conditionalRemovingExpressionVisitorFactory,
            [NotNull] IQueryFlattenerFactory queryFlattenerFactory,
            [NotNull] IDbContextOptions contextOptions)
        {
            Check.NotNull(relationalResultOperatorHandler, nameof(relationalResultOperatorHandler));
            Check.NotNull(relationalAnnotationProvider, nameof(relationalAnnotationProvider));
            Check.NotNull(includeExpressionVisitorFactory, nameof(includeExpressionVisitorFactory));
            Check.NotNull(sqlTranslatingExpressionVisitorFactory, nameof(sqlTranslatingExpressionVisitorFactory));
            Check.NotNull(compositePredicateExpressionVisitorFactory, nameof(compositePredicateExpressionVisitorFactory));
            Check.NotNull(conditionalRemovingExpressionVisitorFactory, nameof(conditionalRemovingExpressionVisitorFactory));
            Check.NotNull(queryFlattenerFactory, nameof(queryFlattenerFactory));
            Check.NotNull(contextOptions, nameof(contextOptions));

            RelationalResultOperatorHandler             = relationalResultOperatorHandler;
            RelationalAnnotationProvider                = relationalAnnotationProvider;
            IncludeExpressionVisitorFactory             = includeExpressionVisitorFactory;
            SqlTranslatingExpressionVisitorFactory      = sqlTranslatingExpressionVisitorFactory;
            CompositePredicateExpressionVisitorFactory  = compositePredicateExpressionVisitorFactory;
            ConditionalRemovingExpressionVisitorFactory = conditionalRemovingExpressionVisitorFactory;
            QueryFlattenerFactory = queryFlattenerFactory;
            ContextOptions        = contextOptions;
        }
 /// <summary>
 ///     From IncludeExpressionVisitor in EF core
 /// </summary>
 public ReplaceIncludeExpressionVisitor(
     ISelectExpressionFactory selectExpressionFactory,
     ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory,
     IMaterializerFactory materializerFactory,
     IShaperCommandContextFactory shaperCommandContextFactory,
     IRelationalAnnotationProvider relationalAnnotationProvider,
     IQuerySqlGeneratorFactory querySqlGeneratorFactory,
     IQuerySource querySource,
     IReadOnlyList <INavigation> navigationPath,
     RelationalQueryCompilationContext queryCompilationContext,
     IReadOnlyList <int> queryIndexes,
     bool querySourceRequiresTracking,
     INavigationExpressionCollection collection)
 {
     _selectExpressionFactory = selectExpressionFactory;
     _compositePredicateExpressionVisitorFactory = compositePredicateExpressionVisitorFactory;
     _materializerFactory          = materializerFactory;
     _shaperCommandContextFactory  = shaperCommandContextFactory;
     _relationalAnnotationProvider = relationalAnnotationProvider;
     _querySqlGeneratorFactory     = querySqlGeneratorFactory;
     _querySource                 = querySource;
     _navigationPath              = navigationPath;
     _queryCompilationContext     = queryCompilationContext;
     _queryIndexes                = queryIndexes;
     _querySourceRequiresTracking = querySourceRequiresTracking;
     _collection = collection;
 }
Example #3
0
 /// <summary>
 ///     Clones this dependency parameter object with one service replaced.
 /// </summary>
 /// <param name="compositePredicateExpressionVisitorFactory"> A replacement for the current dependency of this type. </param>
 /// <returns> A new parameter object with the given service replaced. </returns>
 public RelationalQueryModelVisitorDependencies With([NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory)
 => new RelationalQueryModelVisitorDependencies(
     RelationalResultOperatorHandler,
     SqlTranslatingExpressionVisitorFactory,
     compositePredicateExpressionVisitorFactory,
     ConditionalRemovingExpressionVisitorFactory,
     ContextOptions);
 public ReplaceSqlServerQueryModelVisitor(IQueryOptimizer queryOptimizer
                                          , INavigationRewritingExpressionVisitorFactory navigationRewritingExpressionVisitorFactory
                                          , ISubQueryMemberPushDownExpressionVisitor subQueryMemberPushDownExpressionVisitor
                                          , IQuerySourceTracingExpressionVisitorFactory querySourceTracingExpressionVisitorFactory
                                          , IEntityResultFindingExpressionVisitorFactory entityResultFindingExpressionVisitorFactory
                                          , ITaskBlockingExpressionVisitor taskBlockingExpressionVisitor
                                          , IMemberAccessBindingExpressionVisitorFactory memberAccessBindingExpressionVisitorFactory
                                          , IOrderingExpressionVisitorFactory orderingExpressionVisitorFactory
                                          , IProjectionExpressionVisitorFactory projectionExpressionVisitorFactory
                                          , IEntityQueryableExpressionVisitorFactory entityQueryableExpressionVisitorFactory
                                          , IQueryAnnotationExtractor queryAnnotationExtractor
                                          , IResultOperatorHandler resultOperatorHandler
                                          , IEntityMaterializerSource entityMaterializerSource
                                          , IExpressionPrinter expressionPrinter
                                          , IRelationalAnnotationProvider relationalAnnotationProvider
                                          , IIncludeExpressionVisitorFactory includeExpressionVisitorFactory
                                          , ISqlTranslatingExpressionVisitorFactory sqlTranslatingExpressionVisitorFactory
                                          , ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory
                                          , IConditionalRemovingExpressionVisitorFactory conditionalRemovingExpressionVisitorFactory
                                          , IQueryFlattenerFactory queryFlattenerFactory
                                          , IDbContextOptions contextOptions
                                          , RelationalQueryCompilationContext queryCompilationContext
                                          , SqlServerQueryModelVisitor parentQueryModelVisitor
                                          , INavigationExpressionCollection collection) : base(queryOptimizer, navigationRewritingExpressionVisitorFactory, subQueryMemberPushDownExpressionVisitor, querySourceTracingExpressionVisitorFactory, entityResultFindingExpressionVisitorFactory, taskBlockingExpressionVisitor, memberAccessBindingExpressionVisitorFactory, orderingExpressionVisitorFactory, projectionExpressionVisitorFactory, entityQueryableExpressionVisitorFactory, queryAnnotationExtractor, resultOperatorHandler, entityMaterializerSource, expressionPrinter, relationalAnnotationProvider, includeExpressionVisitorFactory, sqlTranslatingExpressionVisitorFactory, compositePredicateExpressionVisitorFactory, conditionalRemovingExpressionVisitorFactory, queryFlattenerFactory, contextOptions, queryCompilationContext, parentQueryModelVisitor)
 {
     ExpressionCollection = collection;
 }
Example #5
0
        public RelationalQueryModelVisitor(
            [NotNull] IQueryOptimizer queryOptimizer,
            [NotNull] INavigationRewritingExpressionVisitorFactory navigationRewritingExpressionVisitorFactory,
            [NotNull] ISubQueryMemberPushDownExpressionVisitor subQueryMemberPushDownExpressionVisitor,
            [NotNull] IQuerySourceTracingExpressionVisitorFactory querySourceTracingExpressionVisitorFactory,
            [NotNull] IEntityResultFindingExpressionVisitorFactory entityResultFindingExpressionVisitorFactory,
            [NotNull] ITaskBlockingExpressionVisitor taskBlockingExpressionVisitor,
            [NotNull] IMemberAccessBindingExpressionVisitorFactory memberAccessBindingExpressionVisitorFactory,
            [NotNull] IOrderingExpressionVisitorFactory orderingExpressionVisitorFactory,
            [NotNull] IProjectionExpressionVisitorFactory projectionExpressionVisitorFactory,
            [NotNull] IEntityQueryableExpressionVisitorFactory entityQueryableExpressionVisitorFactory,
            [NotNull] IQueryAnnotationExtractor queryAnnotationExtractor,
            [NotNull] IResultOperatorHandler resultOperatorHandler,
            [NotNull] IEntityMaterializerSource entityMaterializerSource,
            [NotNull] IExpressionPrinter expressionPrinter,
            [NotNull] IRelationalAnnotationProvider relationalAnnotationProvider,
            [NotNull] IIncludeExpressionVisitorFactory includeExpressionVisitorFactory,
            [NotNull] ISqlTranslatingExpressionVisitorFactory sqlTranslatingExpressionVisitorFactory,
            [NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory,
            [NotNull] IConditionalRemovingExpressionVisitorFactory conditionalRemovingExpressionVisitorFactory,
            [NotNull] IQueryFlattenerFactory queryFlattenerFactory,
            [NotNull] IDbContextOptions contextOptions,
            [NotNull] RelationalQueryCompilationContext queryCompilationContext,
            [CanBeNull] RelationalQueryModelVisitor parentQueryModelVisitor)
            : base(
                Check.NotNull(queryOptimizer, nameof(queryOptimizer)),
                Check.NotNull(navigationRewritingExpressionVisitorFactory, nameof(navigationRewritingExpressionVisitorFactory)),
                Check.NotNull(subQueryMemberPushDownExpressionVisitor, nameof(subQueryMemberPushDownExpressionVisitor)),
                Check.NotNull(querySourceTracingExpressionVisitorFactory, nameof(querySourceTracingExpressionVisitorFactory)),
                Check.NotNull(entityResultFindingExpressionVisitorFactory, nameof(entityResultFindingExpressionVisitorFactory)),
                Check.NotNull(taskBlockingExpressionVisitor, nameof(taskBlockingExpressionVisitor)),
                Check.NotNull(memberAccessBindingExpressionVisitorFactory, nameof(memberAccessBindingExpressionVisitorFactory)),
                Check.NotNull(orderingExpressionVisitorFactory, nameof(orderingExpressionVisitorFactory)),
                Check.NotNull(projectionExpressionVisitorFactory, nameof(projectionExpressionVisitorFactory)),
                Check.NotNull(entityQueryableExpressionVisitorFactory, nameof(entityQueryableExpressionVisitorFactory)),
                Check.NotNull(queryAnnotationExtractor, nameof(queryAnnotationExtractor)),
                Check.NotNull(resultOperatorHandler, nameof(resultOperatorHandler)),
                Check.NotNull(entityMaterializerSource, nameof(entityMaterializerSource)),
                Check.NotNull(expressionPrinter, nameof(expressionPrinter)),
                Check.NotNull(queryCompilationContext, nameof(queryCompilationContext)))
        {
            Check.NotNull(relationalAnnotationProvider, nameof(relationalAnnotationProvider));
            Check.NotNull(includeExpressionVisitorFactory, nameof(includeExpressionVisitorFactory));
            Check.NotNull(sqlTranslatingExpressionVisitorFactory, nameof(sqlTranslatingExpressionVisitorFactory));
            Check.NotNull(compositePredicateExpressionVisitorFactory, nameof(compositePredicateExpressionVisitorFactory));
            Check.NotNull(conditionalRemovingExpressionVisitorFactory, nameof(conditionalRemovingExpressionVisitorFactory));
            Check.NotNull(queryFlattenerFactory, nameof(queryFlattenerFactory));
            Check.NotNull(contextOptions, nameof(contextOptions));

            _relationalAnnotationProvider                = relationalAnnotationProvider;
            _includeExpressionVisitorFactory             = includeExpressionVisitorFactory;
            _sqlTranslatingExpressionVisitorFactory      = sqlTranslatingExpressionVisitorFactory;
            _compositePredicateExpressionVisitorFactory  = compositePredicateExpressionVisitorFactory;
            _conditionalRemovingExpressionVisitorFactory = conditionalRemovingExpressionVisitorFactory;
            _queryFlattenerFactory = queryFlattenerFactory;

            ContextOptions          = contextOptions;
            ParentQueryModelVisitor = parentQueryModelVisitor;
        }
        public RelationalQueryModelVisitorFactory(
            [NotNull] IModel model,
            [NotNull] IQueryOptimizer queryOptimizer,
            [NotNull] INavigationRewritingExpressionVisitorFactory navigationRewritingExpressionVisitorFactory,
            [NotNull] ISubQueryMemberPushDownExpressionVisitor subQueryMemberPushDownExpressionVisitor,
            [NotNull] IQuerySourceTracingExpressionVisitorFactory querySourceTracingExpressionVisitorFactory,
            [NotNull] IEntityResultFindingExpressionVisitorFactory entityResultFindingExpressionVisitorFactory,
            [NotNull] ITaskBlockingExpressionVisitor taskBlockingExpressionVisitor,
            [NotNull] IMemberAccessBindingExpressionVisitorFactory memberAccessBindingExpressionVisitorFactory,
            [NotNull] IOrderingExpressionVisitorFactory orderingExpressionVisitorFactory,
            [NotNull] IProjectionExpressionVisitorFactory projectionExpressionVisitorFactory,
            [NotNull] IEntityQueryableExpressionVisitorFactory entityQueryableExpressionVisitorFactory,
            [NotNull] IQueryAnnotationExtractor queryAnnotationExtractor,
            [NotNull] IResultOperatorHandler resultOperatorHandler,
            [NotNull] IEntityMaterializerSource entityMaterializerSource,
            [NotNull] IExpressionPrinter expressionPrinter,
            [NotNull] IRelationalAnnotationProvider relationalAnnotationProvider,
            [NotNull] IIncludeExpressionVisitorFactory includeExpressionVisitorFactory,
            [NotNull] ISqlTranslatingExpressionVisitorFactory sqlTranslatingExpressionVisitorFactory,
            [NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory,
            [NotNull] IQueryFlatteningExpressionVisitorFactory queryFlatteningExpressionVisitorFactory,
            [NotNull] IShapedQueryFindingExpressionVisitorFactory shapedQueryFindingExpressionVisitorFactory,
            [NotNull] IDbContextOptions contextOptions)
            : base(
                model,
                queryOptimizer,
                navigationRewritingExpressionVisitorFactory,
                subQueryMemberPushDownExpressionVisitor,
                querySourceTracingExpressionVisitorFactory,
                entityResultFindingExpressionVisitorFactory,
                taskBlockingExpressionVisitor,
                memberAccessBindingExpressionVisitorFactory,
                orderingExpressionVisitorFactory,
                projectionExpressionVisitorFactory,
                entityQueryableExpressionVisitorFactory,
                queryAnnotationExtractor,
                resultOperatorHandler,
                entityMaterializerSource,
                expressionPrinter)
        {
            Check.NotNull(relationalAnnotationProvider, nameof(relationalAnnotationProvider));
            Check.NotNull(includeExpressionVisitorFactory, nameof(includeExpressionVisitorFactory));
            Check.NotNull(sqlTranslatingExpressionVisitorFactory, nameof(sqlTranslatingExpressionVisitorFactory));
            Check.NotNull(compositePredicateExpressionVisitorFactory, nameof(compositePredicateExpressionVisitorFactory));
            Check.NotNull(queryFlatteningExpressionVisitorFactory, nameof(queryFlatteningExpressionVisitorFactory));
            Check.NotNull(shapedQueryFindingExpressionVisitorFactory, nameof(shapedQueryFindingExpressionVisitorFactory));
            Check.NotNull(contextOptions, nameof(contextOptions));

            RelationalAnnotationProvider               = relationalAnnotationProvider;
            IncludeExpressionVisitorFactory            = includeExpressionVisitorFactory;
            SqlTranslatingExpressionVisitorFactory     = sqlTranslatingExpressionVisitorFactory;
            CompositePredicateExpressionVisitorFactory = compositePredicateExpressionVisitorFactory;
            QueryFlatteningExpressionVisitorFactory    = queryFlatteningExpressionVisitorFactory;
            ShapedQueryFindingExpressionVisitorFactory = shapedQueryFindingExpressionVisitorFactory;
            ContextOptions = contextOptions;
        }
Example #7
0
 public RelationalQueryModelVisitor(EntityQueryModelVisitorDependencies dependencies,
                                    RelationalQueryModelVisitorDependencies relationalDependencies,
                                    RelationalQueryCompilationContext queryCompilationContext,
                                    Microsoft.EntityFrameworkCore.Query.RelationalQueryModelVisitor parentQueryModelVisitor)
     : base(dependencies, relationalDependencies, queryCompilationContext, parentQueryModelVisitor)
 {
     _compositePredicateExpressionVisitorFactory = relationalDependencies.CompositePredicateExpressionVisitorFactory;
     _dependencies            = dependencies;
     _queryCompilationContext = queryCompilationContext;
 }
Example #8
0
 public SqlServerQueryModelVisitor(
     [NotNull] IModel model,
     [NotNull] IQueryOptimizer queryOptimizer,
     [NotNull] INavigationRewritingExpressionVisitorFactory navigationRewritingExpressionVisitorFactory,
     [NotNull] ISubQueryMemberPushDownExpressionVisitor subQueryMemberPushDownExpressionVisitor,
     [NotNull] IQuerySourceTracingExpressionVisitorFactory querySourceTracingExpressionVisitorFactory,
     [NotNull] IEntityResultFindingExpressionVisitorFactory entityResultFindingExpressionVisitorFactory,
     [NotNull] ITaskBlockingExpressionVisitor taskBlockingExpressionVisitor,
     [NotNull] IMemberAccessBindingExpressionVisitorFactory memberAccessBindingExpressionVisitorFactory,
     [NotNull] IOrderingExpressionVisitorFactory orderingExpressionVisitorFactory,
     [NotNull] IProjectionExpressionVisitorFactory projectionExpressionVisitorFactory,
     [NotNull] IEntityQueryableExpressionVisitorFactory entityQueryableExpressionVisitorFactory,
     [NotNull] IQueryAnnotationExtractor queryAnnotationExtractor,
     [NotNull] IResultOperatorHandler resultOperatorHandler,
     [NotNull] IEntityMaterializerSource entityMaterializerSource,
     [NotNull] IExpressionPrinter expressionPrinter,
     [NotNull] IRelationalAnnotationProvider relationalAnnotationProvider,
     [NotNull] IIncludeExpressionVisitorFactory includeExpressionVisitorFactory,
     [NotNull] ISqlTranslatingExpressionVisitorFactory sqlTranslatingExpressionVisitorFactory,
     [NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory,
     [NotNull] IQueryFlatteningExpressionVisitorFactory queryFlatteningExpressionVisitorFactory,
     [NotNull] IShapedQueryFindingExpressionVisitorFactory shapedQueryFindingExpressionVisitorFactory,
     [NotNull] IDbContextOptions contextOptions,
     [NotNull] RelationalQueryCompilationContext queryCompilationContext,
     // ReSharper disable once SuggestBaseTypeForParameter
     [CanBeNull] SqlServerQueryModelVisitor parentQueryModelVisitor)
     : base(
         Check.NotNull(model, nameof(model)),
         Check.NotNull(queryOptimizer, nameof(queryOptimizer)),
         Check.NotNull(navigationRewritingExpressionVisitorFactory, nameof(navigationRewritingExpressionVisitorFactory)),
         Check.NotNull(subQueryMemberPushDownExpressionVisitor, nameof(subQueryMemberPushDownExpressionVisitor)),
         Check.NotNull(querySourceTracingExpressionVisitorFactory, nameof(querySourceTracingExpressionVisitorFactory)),
         Check.NotNull(entityResultFindingExpressionVisitorFactory, nameof(entityResultFindingExpressionVisitorFactory)),
         Check.NotNull(taskBlockingExpressionVisitor, nameof(taskBlockingExpressionVisitor)),
         Check.NotNull(memberAccessBindingExpressionVisitorFactory, nameof(memberAccessBindingExpressionVisitorFactory)),
         Check.NotNull(orderingExpressionVisitorFactory, nameof(orderingExpressionVisitorFactory)),
         Check.NotNull(projectionExpressionVisitorFactory, nameof(projectionExpressionVisitorFactory)),
         Check.NotNull(entityQueryableExpressionVisitorFactory, nameof(entityQueryableExpressionVisitorFactory)),
         Check.NotNull(queryAnnotationExtractor, nameof(queryAnnotationExtractor)),
         Check.NotNull(resultOperatorHandler, nameof(resultOperatorHandler)),
         Check.NotNull(entityMaterializerSource, nameof(entityMaterializerSource)),
         Check.NotNull(expressionPrinter, nameof(expressionPrinter)),
         Check.NotNull(relationalAnnotationProvider, nameof(relationalAnnotationProvider)),
         Check.NotNull(includeExpressionVisitorFactory, nameof(includeExpressionVisitorFactory)),
         Check.NotNull(sqlTranslatingExpressionVisitorFactory, nameof(sqlTranslatingExpressionVisitorFactory)),
         Check.NotNull(compositePredicateExpressionVisitorFactory, nameof(compositePredicateExpressionVisitorFactory)),
         Check.NotNull(queryFlatteningExpressionVisitorFactory, nameof(queryFlatteningExpressionVisitorFactory)),
         Check.NotNull(shapedQueryFindingExpressionVisitorFactory, nameof(queryFlatteningExpressionVisitorFactory)),
         Check.NotNull(contextOptions, nameof(contextOptions)),
         Check.NotNull(queryCompilationContext, nameof(queryCompilationContext)),
         parentQueryModelVisitor)
 {
 }
Example #9
0
 public ReplaceIncludeExpressionVisitorFactory(ISelectExpressionFactory selectExpressionFactory
                                               , ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory
                                               , IMaterializerFactory materializerFactory
                                               , IShaperCommandContextFactory shaperCommandContextFactory
                                               , IRelationalAnnotationProvider relationalAnnotationProvider
                                               , IQuerySqlGeneratorFactory querySqlGeneratorFactory
                                               , INavigationExpressionCollection collection)
 {
     _selectExpressionFactory = selectExpressionFactory;
     _compositePredicateExpressionVisitorFactory = compositePredicateExpressionVisitorFactory;
     _materializerFactory          = materializerFactory;
     _shaperCommandContextFactory  = shaperCommandContextFactory;
     _relationalAnnotationProvider = relationalAnnotationProvider;
     _querySqlGeneratorFactory     = querySqlGeneratorFactory;
     _collection = collection;
 }
 /// <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 SqlServerQueryModelVisitorFactory(
     [NotNull] IQueryOptimizer queryOptimizer,
     [NotNull] INavigationRewritingExpressionVisitorFactory navigationRewritingExpressionVisitorFactory,
     [NotNull] ISubQueryMemberPushDownExpressionVisitor subQueryMemberPushDownExpressionVisitor,
     [NotNull] IQuerySourceTracingExpressionVisitorFactory querySourceTracingExpressionVisitorFactory,
     [NotNull] IEntityResultFindingExpressionVisitorFactory entityResultFindingExpressionVisitorFactory,
     [NotNull] ITaskBlockingExpressionVisitor taskBlockingExpressionVisitor,
     [NotNull] IMemberAccessBindingExpressionVisitorFactory memberAccessBindingExpressionVisitorFactory,
     [NotNull] IOrderingExpressionVisitorFactory orderingExpressionVisitorFactory,
     [NotNull] IProjectionExpressionVisitorFactory projectionExpressionVisitorFactory,
     [NotNull] IEntityQueryableExpressionVisitorFactory entityQueryableExpressionVisitorFactory,
     [NotNull] IQueryAnnotationExtractor queryAnnotationExtractor,
     [NotNull] IResultOperatorHandler resultOperatorHandler,
     [NotNull] IEntityMaterializerSource entityMaterializerSource,
     [NotNull] IExpressionPrinter expressionPrinter,
     [NotNull] IRelationalAnnotationProvider relationalAnnotationProvider,
     [NotNull] IIncludeExpressionVisitorFactory includeExpressionVisitorFactory,
     [NotNull] ISqlTranslatingExpressionVisitorFactory sqlTranslatingExpressionVisitorFactory,
     [NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory,
     [NotNull] IConditionalRemovingExpressionVisitorFactory conditionalRemovingExpressionVisitorFactory,
     [NotNull] IQueryFlattenerFactory queryFlattenerFactory,
     [NotNull] IDbContextOptions contextOptions)
     : base(
         queryOptimizer,
         navigationRewritingExpressionVisitorFactory,
         subQueryMemberPushDownExpressionVisitor,
         querySourceTracingExpressionVisitorFactory,
         entityResultFindingExpressionVisitorFactory,
         taskBlockingExpressionVisitor,
         memberAccessBindingExpressionVisitorFactory,
         orderingExpressionVisitorFactory,
         projectionExpressionVisitorFactory,
         entityQueryableExpressionVisitorFactory,
         queryAnnotationExtractor,
         resultOperatorHandler,
         entityMaterializerSource,
         expressionPrinter,
         relationalAnnotationProvider,
         includeExpressionVisitorFactory,
         sqlTranslatingExpressionVisitorFactory,
         compositePredicateExpressionVisitorFactory,
         conditionalRemovingExpressionVisitorFactory,
         queryFlattenerFactory,
         contextOptions)
 {
 }
Example #11
0
        /// <summary>
        ///     <para>
        ///         Creates the service dependencies parameter object for a <see cref="RelationalQueryModelVisitorFactory" />.
        ///     </para>
        ///     <para>
        ///         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.
        ///     </para>
        ///     <para>
        ///         Do not call this constructor directly from either provider or application code as it may change
        ///         as new dependencies are added. Instead, use this type in your constructor so that an instance
        ///         will be created and injected automatically by the dependency injection container. To create
        ///         an instance with some dependent services replaced, first resolve the object from the dependency
        ///         injection container, then replace selected services using the 'With...' methods. Do not call
        ///         the constructor at any point in this process.
        ///     </para>
        /// </summary>
        public RelationalQueryModelVisitorDependencies(
            [NotNull] IRelationalResultOperatorHandler relationalResultOperatorHandler,
            [NotNull] ISqlTranslatingExpressionVisitorFactory sqlTranslatingExpressionVisitorFactory,
            [NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory,
            [NotNull] IConditionalRemovingExpressionVisitorFactory conditionalRemovingExpressionVisitorFactory,
            [NotNull] IDbContextOptions contextOptions)
        {
            Check.NotNull(relationalResultOperatorHandler, nameof(relationalResultOperatorHandler));
            Check.NotNull(sqlTranslatingExpressionVisitorFactory, nameof(sqlTranslatingExpressionVisitorFactory));
            Check.NotNull(compositePredicateExpressionVisitorFactory, nameof(compositePredicateExpressionVisitorFactory));
            Check.NotNull(conditionalRemovingExpressionVisitorFactory, nameof(conditionalRemovingExpressionVisitorFactory));
            Check.NotNull(contextOptions, nameof(contextOptions));

            RelationalResultOperatorHandler             = relationalResultOperatorHandler;
            SqlTranslatingExpressionVisitorFactory      = sqlTranslatingExpressionVisitorFactory;
            CompositePredicateExpressionVisitorFactory  = compositePredicateExpressionVisitorFactory;
            ConditionalRemovingExpressionVisitorFactory = conditionalRemovingExpressionVisitorFactory;
            ContextOptions = contextOptions;
        }
Example #12
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 MySqlIncludeExpressionVisitorFactory(
     [NotNull] ISelectExpressionFactory selectExpressionFactory,
     [NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory,
     [NotNull] IMaterializerFactory materializerFactory,
     [NotNull] IShaperCommandContextFactory shaperCommandContextFactory,
     [NotNull] IRelationalAnnotationProvider relationalAnnotationProvider,
     [NotNull] IQuerySqlGeneratorFactory querySqlGeneratorFactory) : base(
         selectExpressionFactory,
         compositePredicateExpressionVisitorFactory,
         materializerFactory,
         shaperCommandContextFactory,
         relationalAnnotationProvider,
         querySqlGeneratorFactory
         )
 {
     _selectExpressionFactory = selectExpressionFactory;
     _compositePredicateExpressionVisitorFactory = compositePredicateExpressionVisitorFactory;
     _materializerFactory          = materializerFactory;
     _shaperCommandContextFactory  = shaperCommandContextFactory;
     _relationalAnnotationProvider = relationalAnnotationProvider;
     _querySqlGeneratorFactory     = querySqlGeneratorFactory;
 }
        /// <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 IncludeExpressionVisitorFactory(
            [NotNull] ISelectExpressionFactory selectExpressionFactory,
            [NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory,
            [NotNull] IMaterializerFactory materializerFactory,
            [NotNull] IShaperCommandContextFactory shaperCommandContextFactory,
            [NotNull] IRelationalAnnotationProvider relationalAnnotationProvider,
            [NotNull] IQuerySqlGeneratorFactory querySqlGeneratorFactory)
        {
            Check.NotNull(selectExpressionFactory, nameof(selectExpressionFactory));
            Check.NotNull(compositePredicateExpressionVisitorFactory, nameof(compositePredicateExpressionVisitorFactory));
            Check.NotNull(materializerFactory, nameof(materializerFactory));
            Check.NotNull(shaperCommandContextFactory, nameof(shaperCommandContextFactory));
            Check.NotNull(relationalAnnotationProvider, nameof(relationalAnnotationProvider));
            Check.NotNull(querySqlGeneratorFactory, nameof(querySqlGeneratorFactory));

            _selectExpressionFactory = selectExpressionFactory;
            _compositePredicateExpressionVisitorFactory = compositePredicateExpressionVisitorFactory;
            _materializerFactory = materializerFactory;
            _shaperCommandContextFactory = shaperCommandContextFactory;
            _relationalAnnotationProvider = relationalAnnotationProvider;
            _querySqlGeneratorFactory = querySqlGeneratorFactory;
        }
        public IncludeExpressionVisitorFactory(
            [NotNull] ISelectExpressionFactory selectExpressionFactory,
            [NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory,
            [NotNull] IMaterializerFactory materializerFactory,
            [NotNull] IShaperCommandContextFactory shaperCommandContextFactory,
            [NotNull] IRelationalAnnotationProvider relationalAnnotationProvider,
            [NotNull] IQuerySqlGeneratorFactory querySqlGeneratorFactory)
        {
            Check.NotNull(selectExpressionFactory, nameof(selectExpressionFactory));
            Check.NotNull(compositePredicateExpressionVisitorFactory, nameof(compositePredicateExpressionVisitorFactory));
            Check.NotNull(materializerFactory, nameof(materializerFactory));
            Check.NotNull(shaperCommandContextFactory, nameof(shaperCommandContextFactory));
            Check.NotNull(relationalAnnotationProvider, nameof(relationalAnnotationProvider));
            Check.NotNull(querySqlGeneratorFactory, nameof(querySqlGeneratorFactory));

            _selectExpressionFactory = selectExpressionFactory;
            _compositePredicateExpressionVisitorFactory = compositePredicateExpressionVisitorFactory;
            _materializerFactory          = materializerFactory;
            _shaperCommandContextFactory  = shaperCommandContextFactory;
            _relationalAnnotationProvider = relationalAnnotationProvider;
            _querySqlGeneratorFactory     = querySqlGeneratorFactory;
        }
        /// <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 IncludeExpressionVisitorFactory(
            [NotNull] SelectExpressionDependencies selectExpressionDependencies,
            [NotNull] ISelectExpressionFactory selectExpressionFactory,
            [NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory,
            [NotNull] IMaterializerFactory materializerFactory,
            [NotNull] IShaperCommandContextFactory shaperCommandContextFactory,
            [NotNull] IRelationalAnnotationProvider relationalAnnotationProvider)
        {
            Check.NotNull(selectExpressionDependencies, nameof(selectExpressionDependencies));
            Check.NotNull(selectExpressionFactory, nameof(selectExpressionFactory));
            Check.NotNull(compositePredicateExpressionVisitorFactory, nameof(compositePredicateExpressionVisitorFactory));
            Check.NotNull(materializerFactory, nameof(materializerFactory));
            Check.NotNull(shaperCommandContextFactory, nameof(shaperCommandContextFactory));
            Check.NotNull(relationalAnnotationProvider, nameof(relationalAnnotationProvider));

            _selectExpressionDependencies = selectExpressionDependencies;
            _selectExpressionFactory      = selectExpressionFactory;
            _compositePredicateExpressionVisitorFactory = compositePredicateExpressionVisitorFactory;
            _materializerFactory          = materializerFactory;
            _shaperCommandContextFactory  = shaperCommandContextFactory;
            _relationalAnnotationProvider = relationalAnnotationProvider;
        }
Example #16
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 IncludeExpressionVisitor(
            [NotNull] SelectExpressionDependencies selectExpressionDependencies,
            [NotNull] ISelectExpressionFactory selectExpressionFactory,
            [NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory,
            [NotNull] IMaterializerFactory materializerFactory,
            [NotNull] IShaperCommandContextFactory shaperCommandContextFactory,
            [NotNull] IRelationalAnnotationProvider relationalAnnotationProvider,
            [NotNull] IQuerySource querySource,
            [NotNull] IReadOnlyList <INavigation> navigationPath,
            [NotNull] RelationalQueryCompilationContext queryCompilationContext,
            [NotNull] IReadOnlyList <int> queryIndexes,
            bool querySourceRequiresTracking)
        {
            Check.NotNull(selectExpressionDependencies, nameof(selectExpressionDependencies));
            Check.NotNull(selectExpressionFactory, nameof(selectExpressionFactory));
            Check.NotNull(compositePredicateExpressionVisitorFactory, nameof(compositePredicateExpressionVisitorFactory));
            Check.NotNull(materializerFactory, nameof(materializerFactory));
            Check.NotNull(shaperCommandContextFactory, nameof(shaperCommandContextFactory));
            Check.NotNull(relationalAnnotationProvider, nameof(relationalAnnotationProvider));
            Check.NotNull(querySource, nameof(querySource));
            Check.NotNull(navigationPath, nameof(navigationPath));
            Check.NotNull(queryCompilationContext, nameof(queryCompilationContext));
            Check.NotNull(queryIndexes, nameof(queryIndexes));

            SelectExpressionDependencies = selectExpressionDependencies;

            _selectExpressionFactory = selectExpressionFactory;
            _compositePredicateExpressionVisitorFactory = compositePredicateExpressionVisitorFactory;
            _materializerFactory          = materializerFactory;
            _shaperCommandContextFactory  = shaperCommandContextFactory;
            _relationalAnnotationProvider = relationalAnnotationProvider;
            _querySource                 = querySource;
            _navigationPath              = navigationPath;
            _queryCompilationContext     = queryCompilationContext;
            _queryIndexes                = queryIndexes;
            _querySourceRequiresTracking = querySourceRequiresTracking;
        }
 /// <summary>
 /// Initialises a new instance of <see cref="RelationalQueryModelVisitor"/>
 /// </summary>
 public RelationalQueryModelVisitor(IModel model, IQueryOptimizer queryOptimizer, INavigationRewritingExpressionVisitorFactory navigationRewritingExpressionVisitorFactory, ISubQueryMemberPushDownExpressionVisitor subQueryMemberPushDownExpressionVisitor, IQuerySourceTracingExpressionVisitorFactory querySourceTracingExpressionVisitorFactory, IEntityResultFindingExpressionVisitorFactory entityResultFindingExpressionVisitorFactory, ITaskBlockingExpressionVisitor taskBlockingExpressionVisitor, IMemberAccessBindingExpressionVisitorFactory memberAccessBindingExpressionVisitorFactory, IOrderingExpressionVisitorFactory orderingExpressionVisitorFactory, IProjectionExpressionVisitorFactory projectionExpressionVisitorFactory, IEntityQueryableExpressionVisitorFactory entityQueryableExpressionVisitorFactory, IQueryAnnotationExtractor queryAnnotationExtractor, IResultOperatorHandler resultOperatorHandler, IEntityMaterializerSource entityMaterializerSource, IExpressionPrinter expressionPrinter, IRelationalAnnotationProvider relationalAnnotationProvider, IIncludeExpressionVisitorFactory includeExpressionVisitorFactory, ISqlTranslatingExpressionVisitorFactory sqlTranslatingExpressionVisitorFactory, ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory, IQueryFlatteningExpressionVisitorFactory queryFlatteningExpressionVisitorFactory, IShapedQueryFindingExpressionVisitorFactory shapedQueryFindingExpressionVisitorFactory, IDbContextOptions contextOptions, RelationalQueryCompilationContext queryCompilationContext, EFRelationalQueryModelVisitor parentQueryModelVisitor)
     : base(model, queryOptimizer, navigationRewritingExpressionVisitorFactory, subQueryMemberPushDownExpressionVisitor, querySourceTracingExpressionVisitorFactory, entityResultFindingExpressionVisitorFactory, taskBlockingExpressionVisitor, memberAccessBindingExpressionVisitorFactory, orderingExpressionVisitorFactory, projectionExpressionVisitorFactory, entityQueryableExpressionVisitorFactory, queryAnnotationExtractor, resultOperatorHandler, entityMaterializerSource, expressionPrinter, relationalAnnotationProvider, includeExpressionVisitorFactory, sqlTranslatingExpressionVisitorFactory, compositePredicateExpressionVisitorFactory, queryFlatteningExpressionVisitorFactory, shapedQueryFindingExpressionVisitorFactory, contextOptions, queryCompilationContext, parentQueryModelVisitor)
 {
 }