NHiberate查询中的基本日期/时间操作

时间:2010-05-27 18:54:08

标签: c# nhibernate date hql criteria-api

我正在尝试使用一些基本的日期/时间操作限制我的 NHibernate 查询。更具体地说,我想执行以下语句(伪SQL):

select * from article where created_on + lifespan >= sysdate

使用:

  • created_on映射到DateTime类型的属性。
  • lifespan映射到TimeSpan类型的属性。
  • sysdate是当前日期/时间(数据库服务器或应用程序主机,我不在乎)

使用 Criteria-API HQL 是否有内置方法可以做到这一点?

return session
  .CreateCriteria<Article>()
  .Add( ? )
  .List<Article>();

2 个答案:

答案 0 :(得分:1)

由于查询是由服务器执行的,因此它需要支持您要执行的操作。

如果是,则需要继承相应的Dialect并在其构造函数中注册相应的函数。

答案 1 :(得分:1)

create view activearticle as 
    select * from article 
    where created_on + lifespan >= sysdate