NHibernate HQL функции даты - PullRequest
       4

NHibernate HQL функции даты

1 голос
/ 19 марта 2010

Я пишу платформу уведомлений, используя C # и NHibernate. У меня проблемы с запросами.

У меня есть объект Customer, который содержит свойство AssessmentCompleted. Уведомление должно быть отправлено через 21 месяц после сертификации. Таким образом, мой запрос должен включать всех клиентов, где их AssessmentCompletedDate + 21months < currentDate. Как мне этого добиться? Есть ли в NHibernate метод добавления месяца? Мне нужно добавить 21 месяц к каждому AssessmentCompletedProperty. Мой запрос должен выглядеть примерно так:

SELECT new Notification(c.Id, c.Description, c.AssessmentCompleted + 21
            FROM Cusomter c 
            AND c.AssessmentCompleted + 21 <= :EndDate

1 Ответ

2 голосов
/ 21 марта 2010

Вы можете унаследовать свой диалект и зарегистрировать функцию properly. Например, для MS SQL вы можете зарегистрировать функцию dateadd:

RegisterFunction("dateadd", new SQLFunctionTemplate(NHibernateUtil.Date, "dateadd(?1, ?2, ?3)"));

Для этого вы можете использовать его в HQL и Критериях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...