加入Nhibernate

时间:2013-03-12 04:46:00

标签: hibernate nhibernate

我希望使用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());

请帮帮我......

1 个答案:

答案 0 :(得分:1)

你的a_list是否如下所示(如果你想转换为DTO,请使用别名)?

Projections.Distinct(Projections.ProjectionList()
    .Add(Projections.Property("DeptName ").As("BeanDeptName"))
    .Add(Projections.Property("refDeptId ").As("BeanDeptId"))