【发布时间】:2015-12-14 15:03:35
【问题描述】:
我在一个关于为 Where 查询构建表达式树的问题上找到了非常好的答案。
Expression.Lambda and query generation at runtime, simplest "Where" example
谁能帮助我,告诉我如何在嵌套属性的场景中实现这个示例。我的意思是,而不是:
var result = query.Where(item => item.Name == "Soap")
使用该解决方案:
var item = Expression.Parameter(typeof(Item), "item");
var prop = Expression.Property(item, "Name");
var soap = Expression.Constant("Soap");
var equal = Expression.Equal(prop, soap);
var lambda = Expression.Lambda<Func<Item, bool>>(equal, item);
var result = queryableData.Where(lambda);
如何为以下内容构建树?
var result = query.Where(item => item.Data.Name == "Soap").
【问题讨论】:
-
什么是
Data?指定此属性 -
谢尔盖感谢您的帮助。我终于解决了这个问题 - 你可以在下面的更新中查看它。添加第二行,更改第三行。
标签: c# lambda expression-trees dynamic-language-runtime