Exemple #1
0
        public Expression <Func <IEnumerable <TParam>, IEnumerable <TResult> > > Convert <TParam, TResult>(
            Expression <Func <IQueryable <TParam>, IQueryable <TResult> > > expression)
        {
            var param = Expression.Parameter(typeof(IEnumerable <TParam>));

            var visitor = new ReplacingVisitor(
                node => node == expression.Parameters.Single() ? param : node,
                new MethodReplasingRegistry());

            var newBody = visitor.Visit(expression.Body);

            return(Expression.Lambda <Func <IEnumerable <TParam>, IEnumerable <TResult> > >(newBody, param));
        }
Exemple #2
0
        public Expression Convert(Func <Expression, Expression> dataSourceReplacer, Expression oldBody)
        {
            var visitor = new ReplacingVisitor(dataSourceReplacer, new MethodReplasingRegistry());

            return(visitor.Visit(oldBody));
        }
Exemple #3
0
        public Expression Convert(Expression oldDataSource, Expression newDataSource, Expression oldBody)
        {
            var visitor = new ReplacingVisitor(node => node == oldDataSource ? newDataSource : node, new MethodReplasingRegistry());

            return(visitor.Visit(oldBody));
        }