Используя NHibernate, как я могу получить список объектов составного элемента с идентификатором родителя? - PullRequest
0 голосов
/ 26 января 2011

Полагаю, это элементарный вопрос, но, похоже, не могу найти ответ.Используя 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>

Как я могу вернуть IList только дочерних элементов с родительским идентификатором?Я хотел бы видеть пример как в HQL, так и в критериях.Моя слабая и неудачная попытка:

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

1 Ответ

0 голосов
/ 26 января 2011

После нескольких часов поиска, естественно, я нашел ответ, как только отправил сообщение.

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