Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 组合多个表达式以动态创建包含表达式作为getter的select表达式_C#_Dynamic_.net 4.5_Expression Trees_Linq Expressions - Fatal编程技术网

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

C# 组合多个表达式以动态创建包含表达式作为getter的select表达式,c#,dynamic,.net-4.5,expression-trees,linq-expressions,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; expressionnamexpression=x=>x.Name; 表达式名称Expression=x=>x.MarketSegm

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

Expression<Func<Customer,string>> nameExpression = x=>x.Name;
Expression<Func<Customer,string>> nameExpression = x=>x.MarketSegment.Name;
expressionnamexpression=x=>x.Name;
表达式名称Expression=x=>x.MarketSegment.Name;

IQueryable<Customer> query = ..//fetch from dbContext;
IQueryable query=..//fetchfromDbContext;
我想动态创建一个表达式,从查询中选择这些属性

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

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

我找到了那个表达式。New可能是中的一个选项,但我无法找到如何将表达式传递给它

也许这会有所帮助:谢谢,我使用表达式访问者将查询select中的x绑定到作为输入传递的表达式体中的x参数,从而使它能够正常工作。稍后,当我们把它全部清理干净后,我会尝试发布一些代码示例的深入回答。嘿@MichielCornille,你能发布你的代码示例吗?谢谢那是两年前,我不再在我为之写这篇文章的封闭源代码公司工作了。很抱歉