我正在使用C#和NHibernate编写通知平台。我的查询遇到了困难。
我有一个Customer实体 - 其中包含AssessmentCompleted
属性。通知应在认证后21个月发出。因此,我的查询需要包含所有客户AssessmentCompletedDate + 21months < currentDate
。我该如何实现这一目标?在NHibernate中有一个月添加方法吗?我需要为每个AssessmentCompletedProperty
添加21个月。我的查询需要看起来像:
SELECT new Notification(c.Id, c.Description, c.AssessmentCompleted + 21
FROM Cusomter c
AND c.AssessmentCompleted + 21 <= :EndDate
答案 0 :(得分:2)
您可以继承您的方言并注册properly
功能。
例如,对于MS SQL,您可以注册dateadd
函数:
RegisterFunction("dateadd", new SQLFunctionTemplate(NHibernateUtil.Date, "dateadd(?1, ?2, ?3)"));
这样你就可以在HQL和Criteria中使用它了。