1

結合を使用して、2つの異なるテーブルから2つの列が必要です。値が重複しています。.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

個別の値のクエリが必要です。like: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());

私を助けてください...

4

1 に答える 1

1

a_list は以下のようなものですか (DTO に変換する場合はエイリアスを使用) ?

Projections.Distinct(Projections.ProjectionList()
    .Add(Projections.Property("DeptName ").As("BeanDeptName"))
    .Add(Projections.Property("refDeptId ").As("BeanDeptId"))
于 2013-03-12T09:54:29.187 に答える