PredicateBuilder和多级嵌套实体集

时间:2013-02-01 21:01:14

标签: c# asp.net linq entity-framework predicatebuilder

我正试图围绕动态嵌套谓词表达式。这不太好。

基本上我需要能够在一组固定的属性上创建动态查询,但需要在动态(并且可能无限制)的(嵌套)级别上创建动态查询。

以家谱为例,我应该能够编写查询以获得以下任何一个结果:

  • 找到所有有孩子的父母
  • 找到所有有孩子名字以“k”开头的父母
  • 找到所有有孩子的父母,他们的子女是在2013年1月1日之后出生的,其子女的名字是“John”

我可以手工编写类似的东西,效果很好。

var pred = PredicateBuilder.True<db.Entity>();
pred = pred.And(n => 
    n.Children.Where(
        m => m.Children.Where(
            o => o.Name.Contains("John")
        ).Any()
    ).Any()
);

问题是如何在任意数量的嵌套级别上使用混合属性和运算符动态创建上述代码?

0 个答案:

没有答案