除了SQL和HQL之外,是否可以在任何其他nhibernate查询方法中请求使用current_timestamp?
我想制作一些DbDateTime的IUserType类或其他什么来解决这个问题,但不知道具体如何实现
有人有什么想法吗?
我想要的示例:
session.QueryOver<User>()
.Where(u => u.CreatedOn > current_timestamp)
.List();
您可以在QueryOver API中使用IProjection和SQL函数,如下所示:
var result = session.QueryOver<User>()
.Where(Restrictions.GtProperty(
Projections.Property<User>(u => u.CreatedOn),
Projections.SqlFunction("current_timestamp", new NHibernate.Type.TimestampType())))
.List();
这将导致以下SQL:
SELECT this_.... FROM [User] this_ WHERE this_.CreatedOn > sysdatetime() ;
这可能不适用于您的案例,但这可能适用于
session.QueryOver<User>()
.Where(u => u.CreatedOn > DateTime.Now)
.List();