NHibernate Query

Можно ли заставить NHibernate генерировать запрос, подобный приведенному ниже, с помощью HQL или Criteria API?

select
    *
from (
    select
       row_number() over ( partition by Column1 order by Column2 ) as RowNumber,
       T.*
    from
        MyTable T
)
where
    RowNumber = 1

Я могу заставить его выполнить внутренний выбор, используя атрибут формулы, но я не могу понять, как написать запрос HQL или критериев, который позволяет мне обернуть внутренний выбор во внешний.


person Nathan Roe    schedule 03.06.2010    source источник
comment
Когда нам нужно быть именно таким в форме запроса, мы просто используем именованные запросы для его достижения.   -  person Cobusve    schedule 03.06.2010
comment
мы столкнулись с этой проблемой при подкачке больших наборов данных. Есть ошибка с NHibernate. Мы использовали диалект Cusom SQL. Может, это поможет? webdevbros .net / 2010/11/11 /   -  person Dai Bok    schedule 10.12.2010
comment
+1 для Cobusve за предложение именованных запросов.   -  person odez213    schedule 24.06.2011


Ответы (1)


NHibernate 3 имеет интегрированный провайдер Linq to NHibernate, поэтому вы можете писать запросы для разбиения на страницы, например:

Session.Query<Customer>().Skip(10).Take(10).ToList();

Это должно помочь.

person Digbyswift    schedule 11.07.2011