Я написал HQL для поддержки ПЕЙДЖИНГАNHibernate HQL производительность подзапроса
string hql = @"select distinct mr
from MediaResource as mr
where mr.Deleted= false
and mr.Type = :typeId";
SimpleQuery<MediaResource> q = new SimpleQuery<MediaResource>(hql);
q.SetParameter("typeId", typeId);
q.SetQueryRange(page * pageSize, pageSize);
return q.Execute().ToList();
И тогда я написал тест для запуска этой функции и получить NHibernate журнала как
select
*
from
(select
distinct mediaresou0_.MediaResourceID as MediaRes1_7_,
from
MediaResource mediaresou0_
where
mediaresou0_.Deleted=0
and mediaresou0_.Type=:p0)
where
rownum <=:p1;
:p0 = 1, :p1 = 10
Что касается меня, является выберите * из (выберите ...) часть. Будет ли это проблемой производительности? Можно ли сообщить Nhibernate для сгенерирования оператора sql только для одного запроса?
Спасибо за разъяснение. Теперь я чувствую себя намного комфортнее. –