internal static Expression <Func <IEnumerable <T> > > Rewrite <T>(IndexQueryValues queryValues, Expression queryValuesExpression, Expression expression) { var enumerableRewriter = new IndexExpressionRewriter(queryValues, queryValuesExpression); var body = enumerableRewriter.Visit(expression); return(Expression.Lambda <Func <IEnumerable <T> > >(body, null)); }
internal T Execute() { if (_func == null) { var enumerableRewriter = new IndexExpressionRewriter(IndexQuery.QueryValues, IndexQuery.QueryValuesExpression); var body = enumerableRewriter.Visit(Expression); var expression = Expression.Lambda <Func <T> >(body, null); _func = expression.Compile(); } return(_func()); }