В NHibernate есть класс Order
, который применяется для сортировки, когда используются критерии. Выглядит это примерно так:
session
.CreateCriteria(typeof(Foo))
.AddOrder(someOrder)
.List<Foo>();
Вопрос состоит в том, можно ли использовать реализации класса Order если используются не критерии (ICriteria
), а запросы HQL. В этом случае код примерно такой:
session
.CreateQuery(@"select from Foo foo")
.List<Foo>();
Метод CreateQuery
возвращает экземпляр IQuery
, в котором нет метода AddOrder
.
Что же тогда делать если:
c одной стороны, нужно выполнить сложный запрос с джойнами, поэтому нельзя использовать критерии;
с другой стороны, нужно сделать сложную сортироваку (не по полю), которая должна использовать нативный, привязанный к определенной СУБД синтаксис SQL.