public virtual Expression ExpandNavigations(Expression expression) { var newExpression = new NavigationExpandingVisitor(_model).Visit(expression); newExpression = new NavigationExpansionReducingVisitor().Visit(newExpression); return(newExpression); }
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()); }
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); }