public static Expression <Func <T, S> > ParseLambda <T, S>(string expression, params object[] values)
        {
            var parameter = Expression.Parameter(typeof(T));
            var expr      = new System.Linq.Dynamic.Core.Parser.ExpressionParser(new[] { parameter }, expression, values, config).Parse(typeof(S));

            return(Expression.Lambda <Func <T, S> >(expr, parameter));
        }
Exemple #2
0
        /// <summary>
        ///Create predicate from qurey string using System.Linq.Dynamic.Core
        /// </summary>
        public static Func <TSource, bool> GetPredicate <TSource>(string expressionString)
        {
            var param      = Expression.Parameter(typeof(TSource), "x");
            var e          = new System.Linq.Dynamic.Core.Parser.ExpressionParser(new ParameterExpression[] { param }, expressionString, null, null);
            var parsedExpr = e.Parse(typeof(bool));

            return(Expression.Lambda <Func <TSource, bool> >(parsedExpr, param).Compile());
        }
        public static LambdaExpression ParseLambda(ParameterExpression[] parameters, Type resultType, string expression, params object[] values)
        {
            var expr = new System.Linq.Dynamic.Core.Parser.ExpressionParser(parameters, expression, values, config).Parse(resultType);

            resultType = resultType ?? expr.Type;
            var delegateType = Expression.GetDelegateType(parameters.Select(x => x.Type).Concat(new[] { resultType }).ToArray());

            return(Expression.Lambda(delegateType, expr, parameters));
        }
        public static LambdaExpression ParseLambda(Type itType, Type resultType, string expression, params object[] values)
        {
            var parameter = Expression.Parameter(itType);
            var expr      = new System.Linq.Dynamic.Core.Parser.ExpressionParser(new[] { parameter }, expression, values, config).Parse(resultType);

            resultType = resultType ?? expr.Type;
            var delegateType = Expression.GetDelegateType(new[] { itType, resultType });

            return(Expression.Lambda(delegateType, expr, parameter));
        }
        public static LambdaExpression ParseLambda(Type delegateType, ParameterExpression[] parameters, Type resultType, string expression, params object[] values)
        {
            var expr = new System.Linq.Dynamic.Core.Parser.ExpressionParser(parameters, expression, values, config).Parse(resultType);

            return(Expression.Lambda(delegateType, expr, parameters));
        }