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

时间:2016-12-02 13:29:18

标签: c# dynamic .net-4.5 expression-trees linq-expressions

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

Expression<Func<Customer,string>> nameExpression = x=>x.Name;
Expression<Func<Customer,string>> nameExpression = x=>x.MarketSegment.Name;

IQueryable<Customer> query = ..//fetch from dbContext;

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

最终结果必须按如下方式执行:

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

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

0 个答案:

没有答案