NHibernate FetchMode - PullRequest
       0

NHibernate FetchMode

0 голосов
/ 05 мая 2010

У меня есть объект Parent, у которого есть список дочерних элементов:

class Parent {Id, Name, IList<Child> children}
class Child {Id, Name}

Мне нужно выбрать всех родителей, где есть условие для их детей, но я не хочу получать повторяющиеся строки (не хочу, чтобы данные о детях появлялись в списке выбора)

Вот код:

session.CreateCriteria(typeof(Parent))
.SetFetchMode("children", FetchMode.Select);
.CreateCriteria("children").Add(Subqueries.PropertyIn("Id", {1,2,3,4}))
.List<Parent>();

В запросе добавляются все свойства дочернего класса для выбора списка, что приводит к дублированию родителей.

Можно ли каким-либо образом выбрать всех родителей без указания сведений о ребенке в списке выбора?

Спасибо

1 Ответ

0 голосов
/ 05 мая 2010

Одно из возможных решений:

session.CreateCriteria<Parent>()
       .CreateCriteria("children")
       .Add(Subqueries.PropertyIn("Id", {1,2,3,4}))
       .SetResultTransformer(Transformers.DistinctRootEntity)
       .List<Parent>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...