protected override QueryModel ApplyNodeSpecificSemantics(QueryModel queryModel, ClauseGenerationContext clauseGenerationContext)
        {
            var includeResultOperator
                = (IncludeResultOperator)clauseGenerationContext.GetContextInfo(Source);

            includeResultOperator.AppendToNavigationPath(_navigationPropertyPathLambda.GetComplexPropertyAccess());

            clauseGenerationContext.AddContextInfo(this, includeResultOperator);

            return(queryModel);
        }
Exemple #2
0
        public override Expression Resolve(ParameterExpression inputParameter, Expression expressionToBeResolved, ClauseGenerationContext clauseGenerationContext)
        {
            LinqUtility.CheckNotNull("inputParameter", inputParameter);
            LinqUtility.CheckNotNull("expressionToBeResolved", expressionToBeResolved);

            return(Source.Resolve(inputParameter, expressionToBeResolved, clauseGenerationContext));
        }
 /** <inheritdoc /> */
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 {
     return(new RemoveAllResultOperator());
 }
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 {
     return(new DynamicMemberFilterResultOperator(MemberExpression));
 }
 protected override QueryModel ApplyNodeSpecificSemantics(QueryModel queryModel, ClauseGenerationContext clauseGenerationContext)
 {
     return(queryModel);
 }
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 {
     return(new TimeoutResultOperator(_parseInfo, _timeout));
 }
 protected override void ApplyNodes(QueryModel queryModel, ClauseGenerationContext clauseGenerationContext)
 {
     queryModel.BodyClauses.Add(new FilterTypeClause(Expression));
 }
Exemple #8
0
 /// <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>
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 => new TrackingResultOperator(
     tracking: ParsedExpression.Method.GetGenericMethodDefinition()
     .Equals(EntityFrameworkQueryableExtensions.AsTrackingMethodInfo));
 /// <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>
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 => null;
 public Expression GetResolvedPredicate(ClauseGenerationContext clauseGenerationContext)
 {
     return
         (_cachedPredicate.GetOrCreate(
              r => r.GetResolvedExpression(Predicate.Body, Predicate.Parameters[0], clauseGenerationContext)));
 }
 /// <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>
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 => new FromSqlResultOperator(_sql, _arguments);
Exemple #12
0
        protected override QueryModel ApplyNodeSpecificSemantics(QueryModel queryModel, ClauseGenerationContext clauseGenerationContext)
        {
            Utils.CheckNotNull("queryModel", queryModel);

            queryModel.BodyClauses.Add(new SkipTakeClause(Skip, Take));

            return(queryModel);
        }
 protected override void ApplyNodeSpecificSemantics(QueryModel queryModel,
                                                    ClauseGenerationContext clauseGenerationContext)
 {
     queryModel.MainFromClause.ItemName = ItemNamePrefix + (string)ExtentName.Value;
 }
 public override Expression Resolve(ParameterExpression inputParameter, Expression expressionToBeResolved, ClauseGenerationContext clauseGenerationContext)
 {
     throw new NotImplementedException();
 }
 /// <inheritdoc />
 public override Expression Resolve(ParameterExpression inputParameter,
                                    Expression expressionToBeResolved,
                                    ClauseGenerationContext clauseGenerationContext)
 {
     throw new NotSupportedException($"Resolve is not supported by {typeof(ExplainExpressionNode)}");
 }
Exemple #16
0
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 {
     throw new NotImplementedException();
 }
 public Expression GetResolvedKeyPredicate(ClauseGenerationContext clauseGenerationContext)
 {
     return(_cachedKeySelector.GetOrCreate(r => r.GetResolvedExpression(KeySelector.Body, KeySelector.Parameters[0], clauseGenerationContext)));
 }
 /// <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>
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 => new IgnoreQueryFiltersResultOperator();
Exemple #19
0
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 {
     throw new NotImplementedException("Call ApplyNodeSpecificSemantics instead.");
 }
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 {
     return(new CacheableResultOperator(_parseInfo, _data));
 }
Exemple #21
0
        protected override QueryModel ApplyNodeSpecificSemantics(QueryModel queryModel, ClauseGenerationContext clauseGenerationContext)
        {
            ArgumentUtility.CheckNotNull("queryModel", queryModel);

            var previousFetchRequest = clauseGenerationContext.GetContextInfo(Source) as FetchRequestBase;

            if (previousFetchRequest == null)
            {
                throw new NotSupportedException("ThenFetchMany must directly follow another Fetch request.");
            }

            var innerFetchRequest = CreateFetchRequest();

            innerFetchRequest = previousFetchRequest.GetOrAddInnerFetchRequest(innerFetchRequest);
            // Store a mapping between this node and the innerFetchRequest so that a later ThenFetch... node may add its request to the innerFetchRequest.
            clauseGenerationContext.AddContextInfo(this, innerFetchRequest);

            return(queryModel);
        }
 public override Expression Resolve(ParameterExpression inputParameter, Expression expressionToBeResolved,
                                    ClauseGenerationContext clauseGenerationContext)
 {
     throw CreateResolveNotSupportedException();
 }
Exemple #23
0
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 {
     return(_operator);
 }
 public override Expression Resolve(ParameterExpression inputParameter, Expression expressionToBeResolved, ClauseGenerationContext clauseGenerationContext)
 {
     return(Source.Resolve(inputParameter, expressionToBeResolved, clauseGenerationContext));
 }
        protected override QueryModel ApplyNodeSpecificSemantics(QueryModel queryModel, ClauseGenerationContext clauseGenerationContext)
        {
            ArgumentUtility.CheckNotNull("queryModel", queryModel);

            var existingMatchingFetchRequest =
                queryModel.ResultOperators.OfType <FetchRequestBase> ().FirstOrDefault(r => r.RelationMember.Equals(RelationMember));

            if (existingMatchingFetchRequest != null)
            {
                // Store a mapping between this node and the resultOperator so that a later ThenFetch... node may add its request to the resultOperator.
                clauseGenerationContext.AddContextInfo(this, existingMatchingFetchRequest);
                return(queryModel);
            }
            else
            {
                return(base.ApplyNodeSpecificSemantics(queryModel, clauseGenerationContext));
            }
        }
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 {
     return(new ValueFromOpenJsonOperator(_parseInfo, _sql, _arguments));
 }
Exemple #27
0
 protected override Remotion.Linq.Clauses.ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 {
     return(new PairWiseAllResultOperator(_test));
 }
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 {
     // no-op
     return(null);
 }
Exemple #29
0
 public override System.Linq.Expressions.Expression Resolve(System.Linq.Expressions.ParameterExpression inputParameter, System.Linq.Expressions.Expression expressionToBeResolved, ClauseGenerationContext clauseGenerationContext)
 {
     return(Source.Resolve(inputParameter, expressionToBeResolved, clauseGenerationContext));
 }
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 {
     return new CacheableResultOperator(_parseInfo, _data);
 }
Exemple #31
0
 protected override ResultOperatorBase CreateResultOperator(
     ClauseGenerationContext clauseGenerationContext)
 {
     return(new StatsResultOperator(Stats));
 }
 protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext)
 {
     return new AggregateResultOperator(ParseInfo, OptionalSeed, Accumulator, OptionalSelector);
 }
Exemple #33
0
 protected override void ApplyNodeSpecificSemantics(QueryModel queryModel, ClauseGenerationContext clauseGenerationContext)
 {
 }