2013-03-12 2 views
1

Я хочу два столбца из двух разных таблиц, используя join. Я получаю повторяющиеся значения. Я пробовал .SetResultTransformer(Transformers.DistinctRootEntity) и .SetResultTransformer(new DistinctRootEntityResultTransformer()), но мне ничего не помогло. В профайлер я получаю запрос типа:Distinct Присоединиться к Nhibernate

SELECT job1_.DeptName as y0_, this_.refDeptId as y1_ FROM [Emp] this_ inner join [Dept] job1_ on this_.refDeptId=job1_.DeptId 

Я хочу, чтобы запрос для отдельного values.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()); 

Пожалуйста, помогите мне ...

ответ

1

ли ваш a_list что-то вроде ниже (с псевдонимами, если вы хотите преобразовать в DTO)?

Projections.Distinct(Projections.ProjectionList() 
    .Add(Projections.Property("DeptName ").As("BeanDeptName")) 
    .Add(Projections.Property("refDeptId ").As("BeanDeptId")) 
Смежные вопросы