使用NHibernate,如何在给定父ID的情况下检索复合元素对象列表?

时间:2011-01-26 19:06:41

标签: c# nhibernate hql criteria criteria-api

我认为这是一个基本问题,但似乎无法找到答案。使用NHibernate,给出一对多复合元素的映射:

<class name="Event">
  <id name="Id">
    <generator class="guid" />
  </id>
  <set name="Items">
    <key column="EventId" />
    <composite-element class="EventItem">
        <property name="SomeProperty">
    </composite-element>
  </set>
 </class>

如何返回给定父ID的子项的IList?我很想在HQL和标准中看到一个例子。我的虚弱和不成功的尝试:

session.CreateQuery("FROM Event.Items WHERE Event.Id = :id")
   .SetParameter("id", eventId)
   .List<EventItem>();

1 个答案:

答案 0 :(得分:0)

经过几个小时的观察,我发布后很快就找到了答案。

session.CreateQuery("SELECT elements(e.Items) FROM Event e WHERE e.Id = :id")
   .SetParameter("id", eventId)
   .List<EventItem>();