/// <summary> /// Look for references inside a result operator /// </summary> /// <param name="resultOperator"></param> /// <param name="queryModel"></param> /// <param name="index"></param> public override void VisitResultOperator(ResultOperatorBase resultOperator, QueryModel queryModel, int index) { // Do this by a trick - running through the transform of expressions. resultOperator.TransformExpressions(expr => { _exprVisitor.Visit(expr); return(expr); }); base.VisitResultOperator(resultOperator, queryModel, index); }
private static void ProcessSetResultOperator(ResultOperatorBase resultOperator) { switch (resultOperator) { case ExceptResultOperator _: case ConcatResultOperator _: case IntersectResultOperator _: case UnionResultOperator _: resultOperator.TransformExpressions(ConvertEntityQueryableToSubQuery); break; } }
public void Transform(ResultOperatorBase resultOperator) { resultOperator.TransformExpressions(Visit); }
/// <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 void VisitResultOperator(ResultOperatorBase resultOperator, QueryModel queryModel, int index) => resultOperator.TransformExpressions(TransformingVisitor.Visit);
public void Transform(ResultOperatorBase resultOperator) { resultOperator.TransformExpressions(VisitExpression); }
public override void VisitResultOperator(ResultOperatorBase resultOperator, QueryModel queryModel, int index) { // it is not necessary to visit result ops at the moment, since we don't optimize subqueries that contain any result ops // however, we might support some result ops in the future resultOperator.TransformExpressions(_innerVisitor.Visit); }