To call SelectMany dynamically in the way of System.Linq.Dynamic

Posted by user341127 on Stack Overflow See other posts from Stack Overflow or by user341127
Published on 2010-06-06T04:51:37Z Indexed on 2010/06/06 5:02 UTC
Read the original article Hit count: 536

Filed under:
|
|

In System.Linq.Dynamic, there are a few methods to form Select, Where and other Linq statements dynamically. But there is no for SelectMany.

The method for Select is as the following:

    public static IQueryable Select(this IQueryable source, string selector, params object[] values)
    {
        if (source == null) throw new ArgumentNullException("source");
        if (selector == null) throw new ArgumentNullException("selector");
        LambdaExpression lambda = DynamicExpression.ParseLambda(source.ElementType, null, selector, values);
        IQueryable result = source.Provider.CreateQuery(
            Expression.Call(
                typeof(Queryable), "Select",
                new Type[] { source.ElementType, lambda.Body.Type },
                source.Expression, Expression.Quote(lambda)));

        return result;
    }

I tried to modify the above code, after hours working, I couldn't find a way out.

Any suggestions are welcome.

Ying

© Stack Overflow or respective owner

Related posts about LINQ

Related posts about dynamicquery