NHibernate ICriteria поиск - PullRequest
       6

NHibernate ICriteria поиск

0 голосов
/ 14 февраля 2010

У меня есть следующий критерий поиска, который я ожидаю вернуть 1 проект с несколькими задачами и контекстами и одним пользователем.

На самом деле возвращается один и тот же проект несколько раз для каждой отдельной задачи.

Похоже, что в критериях я пропускаю утверждение, чтобы поиск возвращал уникальные проекты.

Любая помощь будет приветствоваться.

ICriteria criteria = NHibernateSession.Current.CreateCriteria(typeof(Project))
            .CreateAlias("User", "user")
            .Add(Restrictions.Eq("user.Username", username))
            .SetFetchMode("Tasks", FetchMode.Eager)
            .SetFetchMode("Contexts", FetchMode.Eager);

IList<Project> projects = criteria.List<Project>();

Заранее спасибо ...

Ответы [ 3 ]

2 голосов
/ 14 февраля 2010

Не уверен, но попробуйте добавить criteria.SetResultTransformer(new NHibernate.Transform.DistinctRootEntityResultTransformer());

Подробнее здесь: http://colinramsay.co.uk/diary/2008/01/15/nhibernate-optimising-queries-with-projections/

1 голос
/ 15 февраля 2010
1 голос
/ 14 февраля 2010

IList проекты = критерии. Уникальный результат ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...