Я пытаюсь ограничить свой запрос NHibernate с некоторым основным управлением датой/временем. Строго говоря, я хочу выполнить следующее утверждение (псевдо-SQL):
select * from article where created_on + lifespan >= sysdate
с:
created_on
отображается на свойстве типа DateTime
.lifespan
отображается на свойстве типа TimeSpan
.sysdate
текущая дата / время (сервера базы данных или хоста приложений, я не забочусь),Там какой-либо встроенный путь состоит в том, чтобы сделать это при помощи API критериев или HQL?
return session
.CreateCriteria<Article>()
.Add( ? )
.List<Article>();
Поскольку запросы выполняются сервером, он должен поддерживать операции, которые вы хотите выполнять.
Если это так, вам нужно унаследовать соответствующий диалект и зарегистрировать соответствующие функции в его конструкторе.
create view activearticle as
select * from article
where created_on + lifespan >= sysdate