我希望使用join从两个不同的表中选择两列。我得到重复的值。我尝试了.SetResultTransformer(Transformers.DistinctRootEntity
)和.SetResultTransformer(new DistinctRootEntityResultTransformer())
,但没有任何帮助。在分析器中,我得到的查询如下:
SELECT job1_.DeptName as y0_, this_.refDeptId as y1_ FROM [Emp] this_ inner join [Dept] job1_ on this_.refDeptId=job1_.DeptId
我想查询不同的值。像:SELECT distinct job1_.DeptName as y0_, this_.refDeptId as y1_ FROM [Emp] this_ inner join [Dept] job1_ on this_.refDeptId=job1_.DeptId
我在nhibernate中的查询是:
IList ListOfElements= (session
.CreateCriteria(typeof(EmpModel))
.CreateCriteria("objEmpDeptId1", "job",NHibernate.SqlCommand.JoinType.InnerJoin)
.SetProjection( a_ProjectionList).List());
请帮帮我......
答案 0 :(得分:1)
你的a_list是否如下所示(如果你想转换为DTO,请使用别名)?
Projections.Distinct(Projections.ProjectionList()
.Add(Projections.Property("DeptName ").As("BeanDeptName"))
.Add(Projections.Property("refDeptId ").As("BeanDeptId"))