【问题标题】:Problem querying into object hierarchy with nHibernate使用 nHibernate 查询对象层次结构的问题
【发布时间】:2011-03-31 22:23:02
【问题描述】:

问题:

我有对象层次结构A => B => C - 那是A 引用BB 引用CC 包含我要查询的 Name 属性。我正在尝试调用以下代码来获取A's的列表

ICriteria criteria = session.CreateCriteria(typeof (A)).Add(Restrictions.Eq("B.C.Name", "Test"));
return criteria.List<A>();

我收到错误“无法解析属性:B.C.Name of: A”。我的所有映射看起来都不错,其中B 包含C 属性,C 包含Name 属性。我还验证了映射是正确的,因为我正在运行其他成功检索请求数据的查询。

基本上,我正在尝试获取与C 中的名称匹配的所有A's。那么如何编写一个可以做到这一点的查询呢?

谢谢,

凯尔

【问题讨论】:

    标签: nhibernate hierarchy queryover


    【解决方案1】:

    使用 QueryOver:

    session.QueryOver<A>()
        .JoinQueryOver(a => a.B)
        .JoinQueryOver(b => b.C)
        .Where(c => c.Name == "Test")
        .List<A>();
    

    您也可以使用别名。

    【讨论】:

    • 非常感谢 - 做到了。我还在nhforge.org/blogs/nhibernate/archive/2009/12/17/… 找到了一篇关于 QueryOver API 的好文章。有时你只需要知道什么叫做事情就可以朝着正确的方向开始。
    • 是的,这几乎是 QueryOver 上最好的信息 :)
    猜你喜欢
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 2020-04-17
    • 2015-10-15
    • 1970-01-01
    相关资源
    最近更新 更多