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