public virtual Expression ExpandNavigations(Expression expression)
        {
            var newExpression = new NavigationExpandingVisitor(_model).Visit(expression);

            newExpression = new NavigationExpansionReducingVisitor().Visit(newExpression);

            return(newExpression);
        }
Example #2
0
        public virtual Expression ExpandNavigations(Expression expression)
        {
            var newExpression = new NavigationExpandingVisitor(_model).Visit(expression);

            newExpression = new NavigationExpansionReducingVisitor().Visit(newExpression);

            // TODO: this can probably be removed once new pipeline is in place
            return(newExpression.RemoveConvert());
        }
Example #3
0
        public Expression Visit(Expression query)
        {
            query = new QueryMetadataExtractingExpressionVisitor(_queryCompilationContext).Visit(query);
            query = new AllAnyToContainsRewritingExpressionVisitor().Visit(query);
            query = new GroupJoinFlatteningExpressionVisitor().Visit(query);
            query = new NullCheckRemovingExpressionVisitor().Visit(query);
            query = new EntityEqualityRewritingExpressionVisitor(_queryCompilationContext).Rewrite(query);
            query = new NavigationExpandingVisitor(_queryCompilationContext).Visit(query);
            query = new NavigationExpansionReducingVisitor().Visit(query);
            query = new EnumerableToQueryableReMappingExpressionVisitor().Visit(query);
            query = new NullCheckRemovingExpressionVisitor().Visit(query);
            query = new FunctionPreprocessingVisitor().Visit(query);
            new EnumerableVerifyingExpressionVisitor().Visit(query);

            return(query);
        }