使用QueryOver过滤子集合

时间:2016-01-04 20:41:33

标签: c# nhibernate queryover

我想编写一个查询,在QueryOver中过滤基类型的子集合。例如......

class Person{
    List<Contact> contacts;
}

class Contact{
    string PhoneNumber;
    bool isHome;
}

然后

QueryOver.Of<Person>()
 .JoinQueryOver(p => p.Contact)
 .Where(c => c.isHome);

我想要返回所有人并且每个人只有联系人集合中填充了isHome为真的联系人。

我试过变形金刚尝试获得正确的结果。 DistinctRootEntity转换器不会在子集合上保留预期的过滤器。 AliasToEntityMap返回正确的行,但结果作为Dictionary而不是Root类型返回。

我正在尝试替换NHibernate过滤器的用法。我不确定这是否可行。

1 个答案:

答案 0 :(得分:1)

几乎在发布后我立即找到了我的问题的答案。为了实现我试图获得的所有要求,只需指定JoinType和Transformer。

View btn_v = view.findViewWithTag(aiPickedButton);
System.out.println("Button: " + btn_v);
btn = (Button) btn_v;
System.out.println("Button: " + btn); 

现在我让所有人只有他们的家庭联系人