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,你能发布你的代码示例吗?谢谢那是两年前,我不再在我为之写这篇文章的封闭源代码公司工作了。很抱歉