组合多个表达式以动态创建包含表达式的select表达式作为getter

给出两个表达式的输入,例如:

Expression<Func> nameExpression = x=>x.Name; Expression<Func> nameExpression = x=>x.MarketSegment.Name; 

和a

 IQueryable query = ..//fetch from dbContext; 

我想动态创建一个表达式,从查询中选择这些属性。

最终结果必须执行如下:

 Expression<IQueryable,IQueryable> query = query.Select(x=>new{ x=>x.Name, x=>x.MarketSegment.Name }); 

我发现Expression.New可能是这个问题的一个选项,但我无法弄清楚如何将表达式传递给它。