NHibernate ICriteria搜索

时间:2010-02-14 19:24:26

标签: nhibernate hibernate

我有以下标准搜索,我希望返回包含多个任务和上下文以及单个用户的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 个答案:

答案 0 :(得分:2)

不确定,但请尝试添加criteria.SetResultTransformer(new NHibernate.Transform.DistinctRootEntityResultTransformer());

此处有更多信息:http://colinramsay.co.uk/diary/2008/01/15/nhibernate-optimising-queries-with-projections/

答案 1 :(得分:1)

的IList&LT;项目&GT; projects = criteria.UniqueResult&lt; Project&gt;();

答案 2 :(得分:1)