public override EntityQueryModelVisitor Create( QueryCompilationContext queryCompilationContext, EntityQueryModelVisitor parentEntityQueryModelVisitor) => new SqlServerQueryModelVisitor( Model, QueryOptimizer, NavigationRewritingExpressionVisitorFactory, SubQueryMemberPushDownExpressionVisitor, QuerySourceTracingExpressionVisitorFactory, EntityResultFindingExpressionVisitorFactory, TaskBlockingExpressionVisitor, MemberAccessBindingExpressionVisitorFactory, OrderingExpressionVisitorFactory, ProjectionExpressionVisitorFactory, EntityQueryableExpressionVisitorFactory, QueryAnnotationExtractor, ResultOperatorHandler, EntityMaterializerSource, ExpressionPrinter, RelationalAnnotationProvider, IncludeExpressionVisitorFactory, SqlTranslatingExpressionVisitorFactory, CompositePredicateExpressionVisitorFactory, QueryFlattenerFactory, ContextOptions, (RelationalQueryCompilationContext)Check.NotNull(queryCompilationContext, nameof(queryCompilationContext)), (SqlServerQueryModelVisitor)parentEntityQueryModelVisitor);
public virtual EntityTrackingInfo Create( QueryCompilationContext queryCompilationContext, QuerySourceReferenceExpression querySourceReferenceExpression, IEntityType entityType) { var trackingInfo = new EntityTrackingInfo( _keyValueFactorySource, queryCompilationContext, querySourceReferenceExpression, entityType); return trackingInfo; }
public EntityResultFindingExpressionTreeVisitor( [NotNull] QueryCompilationContext queryCompilationContext) { Check.NotNull(queryCompilationContext, nameof(queryCompilationContext)); _queryCompilationContext = queryCompilationContext; _untrackedQuerySources = new HashSet<IQuerySource>( _queryCompilationContext.QueryAnnotations .OfType<AsNoTrackingQueryAnnotation>() .Select(qa => qa.QuerySource)); }
public virtual EntityTrackingInfo Create( QueryCompilationContext queryCompilationContext, QuerySourceReferenceExpression querySourceReferenceExpression, IEntityType entityType) { var trackingInfo = new EntityTrackingInfo( _entityKeyFactorySource, _clrPropertyGetterSource, queryCompilationContext, querySourceReferenceExpression, entityType); return trackingInfo; }
/// <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 override EntityQueryModelVisitor Create( QueryCompilationContext queryCompilationContext, EntityQueryModelVisitor parentEntityQueryModelVisitor) => new InMemoryQueryModelVisitor( QueryOptimizer, NavigationRewritingExpressionVisitorFactory, SubQueryMemberPushDownExpressionVisitor, QuerySourceTracingExpressionVisitorFactory, EntityResultFindingExpressionVisitorFactory, TaskBlockingExpressionVisitor, MemberAccessBindingExpressionVisitorFactory, OrderingExpressionVisitorFactory, ProjectionExpressionVisitorFactory, EntityQueryableExpressionVisitorFactory, QueryAnnotationExtractor, ResultOperatorHandler, EntityMaterializerSource, ExpressionPrinter, MaterializerFactory, Check.NotNull(queryCompilationContext, nameof(queryCompilationContext)));
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public virtual QueryTranslationPreprocessor Create(QueryCompilationContext queryCompilationContext) { Check.NotNull(queryCompilationContext, nameof(queryCompilationContext)); return(new QueryTranslationPreprocessor(Dependencies, queryCompilationContext)); }
/// <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 virtual EntityResultFindingExpressionVisitor Create(QueryCompilationContext queryCompilationContext) => new EntityResultFindingExpressionVisitor( _model, _entityTrackingInfoFactory, queryCompilationContext);
public override EntityQueryModelVisitor Create(QueryCompilationContext queryCompilationContext, EntityQueryModelVisitor parentEntityQueryModelVisitor) => new LocalDbEntityQueryModelVisitor(Dependencies, queryCompilationContext);
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public EntityEqualityRewritingExpressionVisitor( [NotNull] QueryCompilationContext queryCompilationContext) { _queryCompilationContext = queryCompilationContext; _model = _queryCompilationContext.Model; }
public virtual QueryOptimizer Create(QueryCompilationContext queryCompilationContext) => new RelationalQueryOptimizer(_dependencies, _relationalDependencies, queryCompilationContext);
public virtual NavigationExpandingExpressionVisitor Create( QueryTranslationPreprocessor queryTranslationPreprocessor, QueryCompilationContext queryCompilationContext, IEvaluatableExpressionFilter evaluatableExpressionFilter) { return(new RelationalNavigationExpandingExpressionVisitor(queryTranslationPreprocessor, queryCompilationContext, evaluatableExpressionFilter)); }
public InMemoryQueryModelVisitor([NotNull] QueryCompilationContext queryCompilationContext) : base(Check.NotNull(queryCompilationContext, nameof(queryCompilationContext))) { }
public virtual QueryTranslationPostprocessor Create(QueryCompilationContext queryCompilationContext) => new SqlServerQueryTranslationPostprocessor( _dependencies, _relationalDependencies, queryCompilationContext);
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public virtual QueryTranslationPreprocessor Create(QueryCompilationContext queryCompilationContext) => new RelationalQueryTranslationPreprocessor(Dependencies, RelationalDependencies, queryCompilationContext);
public virtual QueryableMethodTranslatingExpressionVisitor Create(QueryCompilationContext queryCompilationContext) { Check.NotNull(queryCompilationContext, nameof(queryCompilationContext)); return(new SqliteQueryableMethodTranslatingExpressionVisitor(_dependencies, _relationalDependencies, queryCompilationContext)); }
public NavigationExpandingVisitor([NotNull] QueryCompilationContext queryCompilationContext) { _queryCompilationContext = queryCompilationContext; }
public RelationalSqlTranslatingExpressionVisitor Create(QueryCompilationContext queryCompilationContext, QueryableMethodTranslatingExpressionVisitor queryableMethodTranslatingExpressionVisitor) => new VfpSqlTranslatingExpressionVisitor(_dependencies, queryCompilationContext, queryableMethodTranslatingExpressionVisitor);
public ClickHouseSqlTranslatingExpressionVisitor(RelationalSqlTranslatingExpressionVisitorDependencies dependencies, QueryCompilationContext queryCompilationContext, QueryableMethodTranslatingExpressionVisitor queryableMethodTranslatingExpressionVisitor) : base(dependencies, queryCompilationContext, queryableMethodTranslatingExpressionVisitor) { }
public CosmosEagerLoadingExpressionVisitor( QueryCompilationContext queryCompilationContext, IQuerySourceTracingExpressionVisitorFactory querySourceTracingExpressionVisitorFactory) : base(queryCompilationContext, querySourceTracingExpressionVisitorFactory) { }
protected void Compile( QueryCompilationContext queryCompilationContext, QueryModel queryModel, bool trackingQuery, bool asyncQuery, ref int collectionIncludeId, QuerySourceReferenceExpression targetQuerySourceReferenceExpression) { var entityParameter = Expression.Parameter(targetQuerySourceReferenceExpression.Type, name: "entity"); var propertyExpressions = new List <Expression>(); var blockExpressions = new List <Expression>(); var entityType = queryCompilationContext.FindEntityType(targetQuerySourceReferenceExpression.ReferencedQuerySource) ?? queryCompilationContext.Model.FindEntityType(entityParameter.Type); if (entityType.IsQueryType) { trackingQuery = false; } if (trackingQuery) { blockExpressions.Add( Expression.Call( Expression.Property( EntityQueryModelVisitor.QueryContextParameter, nameof(QueryContext.QueryBuffer)), _queryBufferStartTrackingMethodInfo, entityParameter, Expression.Constant(entityType))); } var includedIndex = 0; // ReSharper disable once LoopCanBeConvertedToQuery foreach (var includeLoadTreeNode in Children) { blockExpressions.Add( includeLoadTreeNode.Compile( queryCompilationContext, targetQuerySourceReferenceExpression, entityParameter, propertyExpressions, trackingQuery, asyncQuery, ref includedIndex, ref collectionIncludeId)); } if (blockExpressions.Count > 1 || blockExpressions.Count == 1 && !trackingQuery) { AwaitTaskExpressions(asyncQuery, blockExpressions); var includeExpression = blockExpressions.Last().Type == typeof(Task) ? new TaskBlockingExpressionVisitor() .Visit( Expression.Call( _includeAsyncMethodInfo .MakeGenericMethod(targetQuerySourceReferenceExpression.Type), EntityQueryModelVisitor.QueryContextParameter, targetQuerySourceReferenceExpression, Expression.NewArrayInit(typeof(object), propertyExpressions), Expression.Lambda( Expression.Block(blockExpressions), EntityQueryModelVisitor.QueryContextParameter, entityParameter, _includedParameter, CancellationTokenParameter), CancellationTokenParameter)) : Expression.Call( _includeMethodInfo.MakeGenericMethod(targetQuerySourceReferenceExpression.Type), EntityQueryModelVisitor.QueryContextParameter, targetQuerySourceReferenceExpression, Expression.NewArrayInit(typeof(object), propertyExpressions), Expression.Lambda( Expression.Block(typeof(void), blockExpressions), EntityQueryModelVisitor.QueryContextParameter, entityParameter, _includedParameter)); ApplyIncludeExpressionsToQueryModel( queryModel, targetQuerySourceReferenceExpression, includeExpression); } }
public override EntityQueryModelVisitor Create(QueryCompilationContext queryCompilationContext, EntityQueryModelVisitor parentEntityQueryModelVisitor) { return(new ZQueryModelVisitor(base.Dependencies, base.RelationalDependencies, (RelationalQueryCompilationContext)queryCompilationContext, (RelationalQueryModelVisitor)parentEntityQueryModelVisitor)); }
public virtual QueryTranslationPreprocessor Create(QueryCompilationContext queryCompilationContext) { Check.NotNull(queryCompilationContext, nameof(queryCompilationContext)); return(new RelationalQueryTranslationPreprocessor(_dependencies, _relationalDependencies, queryCompilationContext, _navigationExpandingExpressionVisitorFactory)); }
public virtual ShapedQueryCompilingExpressionVisitor Create(QueryCompilationContext queryCompilationContext) { Check.NotNull(queryCompilationContext, nameof(queryCompilationContext)); return(new InMemoryShapedQueryCompilingExpressionVisitor(_dependencies, queryCompilationContext)); }
public override ShapedQueryOptimizer Create(QueryCompilationContext queryCompilationContext) { return(new RelationalShapedQueryOptimizer(queryCompilationContext, SqlExpressionFactory)); }
public virtual QueryTranslationPostprocessor Create(QueryCompilationContext queryCompilationContext) { return(new QueryTranslationPostprocessor(_dependencies)); }
public virtual ShapedQueryCompilingExpressionVisitor Create(QueryCompilationContext queryCompilationContext) => new InMemoryShapedQueryCompilingExpressionVisitor(_dependencies, queryCompilationContext);
public QueryMetadataExtractingExpressionVisitor(QueryCompilationContext queryCompilationContext) { _queryCompilationContext = queryCompilationContext; }
/// <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 virtual EagerLoadingExpressionVisitor Create( QueryCompilationContext queryCompilationContext, IQuerySourceTracingExpressionVisitorFactory querySourceTracingExpressionVisitorFactory) => new EagerLoadingExpressionVisitor(queryCompilationContext, querySourceTracingExpressionVisitorFactory);
public LocalDbEntityQueryModelVisitor(EntityQueryModelVisitorDependencies dependencies, QueryCompilationContext queryCompilationContext) : base(dependencies, queryCompilationContext) { }
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public AdditionalFromClauseOptimizingQueryModelVisitor(QueryCompilationContext queryCompilationContext) { _queryCompilationContext = queryCompilationContext; }
public override EntityQueryableTranslator Create(QueryCompilationContext queryCompilationContext) { return(new InMemoryEntityQueryableTranslator(_model)); }
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public override EntityQueryModelVisitor Create( QueryCompilationContext queryCompilationContext, EntityQueryModelVisitor parentEntityQueryModelVisitor) => new InMemoryQueryModelVisitor( Dependencies, Check.NotNull(queryCompilationContext, nameof(queryCompilationContext)));
public QueryableMethodNormalizingExpressionVisitor([NotNull] QueryCompilationContext queryCompilationContext) { Check.NotNull(queryCompilationContext, nameof(Query)); _queryCompilationContext = queryCompilationContext; }
/// <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 SubQueryMemberPushDownExpressionVisitor([NotNull] QueryCompilationContext queryCompilationContext) { _queryCompilationContext = queryCompilationContext; }
public SqlTranslatingExpressionVisitor(SelectExpression selectExpression, QueryCompilationContext queryCompilationContext) { _selectExpression = selectExpression; _queryCompilationContext = queryCompilationContext; }
/// <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 LiteDBQueryModelVisitor( [NotNull] EntityQueryModelVisitorDependencies dependencies, [NotNull] QueryCompilationContext queryCompilationContext) : base(dependencies, queryCompilationContext) { }