我在一个有关构建Where查询表达式树的问题上找到了非常好的答案。
Expression.Lambda和运行时生成查询,最简单的“Where”示例
请问是否有人能够帮助我,并展示如何在嵌套属性的情况下实现此示例。我的意思是,代替:
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").