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

发布于 2024-10-14 10:22:17 字数 619 浏览 6 评论 0原文

我认为这是一个基本问题,但似乎找不到答案。使用 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>();

I presume this is an elementary question, but can't seem to find the answer. Using NHibernate, given a mapping with a one-to-many composite-element:

<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>

How can I return an IList of just the child Items given a parent ID? I'd love to see an example in both HQL and criteria. My feeble and unsuccessful attempt:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不喜欢何必死缠烂打 2024-10-21 10:22:17

经过几个小时的寻找,自然一发帖就找到了答案。

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

After several hours of looking, naturally I found the answer as soon as I posted.

session.CreateQuery("SELECT elements(e.Items) FROM Event e WHERE e.Id = :id")
   .SetParameter("id", eventId)
   .List<EventItem>();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文