代码之家  ›  专栏  ›  技术社区  ›  Oliver Hanappi

如何使用nhibernate的标准API查询子属性?

  •  1
  • Oliver Hanappi  · 技术社区  · 15 年前

    我想进行一个查询,需要将属性的属性与某个值进行比较。例如:

    ... WHERE Identity.Location.Room = "room #1"
    

    我如何用标准API实现这一点?

    最好的问候
    奥利弗哈纳皮

    2 回复  |  直到 13 年前
        1
  •  3
  •   Nigel    15 年前

    这将通过联接表来执行查询:

    var criteria = session.CreateCriteria(typeof(Identity))
        .CreateAlias("Location", "l")
        .Add(Restrictions.Eq("l.Room", "room #1"));
    
        2
  •  1
  •   Denis    13 年前

    不要在别名中使用数字。

        var criteria = session.CreateCriteria(typeof(Identity))
        .CreateAlias("Location", "Al")
        .Add(Restrictions.Eq("Al.Room", "room #1"));