Создать критерии и МЕСЯЦ - PullRequest
1 голос
/ 06 февраля 2009

Можно ли использовать MONTH в выражении CreateCriteria?

Поддерживает ли NHibernate ГОД и / или МЕСЯЦ?

У меня есть SQL-заявление, как выберите obs2.Lopnr из Obs obs2, где MONTH (obs2.Datum) = 11)

С наилучшими пожеланиями от

Маты

Ответы [ 2 ]

1 голос
/ 09 февраля 2009

ICriteria поддерживает произвольный SQL в качестве ограничения . Поэтому вы могли бы сделать:

var criteria = session.CreateCriteria(typeof(Obs))
    .Add(Expression.Sql("MONTH({alias}.Datum) = ?", 11, NHibernateUtil.Int32);
var results = criteria.List<Obs>();

Это выполнит SQL-запрос с {псевдонимом}, замененным псевдонимом, который NHibernate использует для таблицы Obs. Конечно, это ограничивает вашу мобильность для других баз данных, поскольку SQL теперь встроен в ваш запрос.

Еще одна вещь, которую следует помнить, это то, что имена, которые вы здесь используете, являются отображенными именами свойств и классов, а не именами столбцов и таблиц.

0 голосов
/ 06 февраля 2009

Я не верю, что это возможно в утверждении критериев. Функции даты (год, месяц, день) поддерживаются в HQL-запросах, поэтому их можно использовать таким образом.

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