Как заказать по столбцам из внутреннего соединения с QueryOver? - PullRequest
2 голосов
/ 20 октября 2011

Скажите, что у меня есть запрос как:

return NHibernateHelper.Session.QueryOver<SomeEntity>()
    .JoinQueryOver(x => x.Entity2)
    .JoinQueryOver(x => x.Entity3)
    .Where(x = x.Id > 10)
    .OrderBy( ????  )
    .List<SomeEntity>();

Теперь скажите, что я хочу заказать по столбцу Entity3.SortOrder, как я могу это сделать?

1 Ответ

3 голосов
/ 21 октября 2011
Entity2 e2Alias = null;
Entity3 e3Alias = null;
SomeEntity s = null;
return NHibernateHelper.Session.QueryOver<SomeEntity>()
    .JoinAlias(() => s, () => e2Alias.SomeEntityReference) //here you need to specify the other  side of the relation in the other entity that refernces th SomeEntity
    .JoinAlias(() => s, () => e3Alias.SomeEntityReference)
    .Where(() => s.Id > 10)
    .OrderBy( () => e3Alias.SortOrder).Asc //or Desc
    .List<SomeEntity>(); 
...