Эта запись в блоге NHibernate отмечает, как можно создавать отдельные QueryOver
запросы (аналогично DetachedCriteria
) (используя QueryOver.Of<T>()
). Однако, если посмотреть на это, это совсем не похоже на меня.
С DetachedCriteria я бы создал свой экземпляр и настроил его так, как мне нужно, а затем вызову GetExecutableCriteria()
, чтобы затем назначить сеанс и выполнить запрос. При «отключенном» QueryOver
большая часть API недоступна (т. Е. Для добавления ограничений, объединений, упорядочивания и т. Д.) До тех пор, пока я не вызову GetExecutableQueryOver
, для чего требуется ISession
или IStatelessSession
, в этот момент вы больше не отключены.
Как вы работаете с отдельными QueryOver
экземплярами?
EDIT:
Фактическая проблема была связана с тем, как я храню отдельный экземпляр QueryOver:
public class CriteriaQuery<T>
{
internal protected QueryOver<T> _QueryOver { get; set; }
public CriteriaQuery()
{
_QueryOver = QueryOver.Of<T>();
}
// Snip
}
Это должно быть QueryOver<T, T>
.