Выполнить пользовательский sql для одного свойства в NHibernate - PullRequest
1 голос
/ 17 марта 2009

Насколько я понимаю, в NHibernate есть встроенная поддержка меток времени. Однако, похоже, что вы можете только дать указание NHibernate никогда не обновлять свойство или всегда обновлять его.

В проекте, над которым я сейчас работаю, есть несколько таблиц, в которых есть и "created_time", и "updated_time", обе должны быть сгенерированы базой данных.

Я не могу понять, как настроить NHibernate на использование "getdate()" для обоих свойств, только при вставке для "created_time" и при вставке и обновлении для "updated_time".

Возможно ли это?

PS: я работаю с устаревшей базой данных, и мне не разрешено ее изменять, поэтому триггеры и т. Д. Не являются возможными решениями.

Ответы [ 2 ]

1 голос
/ 17 марта 2009

Какую версию NHibernate вы используете?

В 2.0 «сгенерированный» тег свойства имеет три допустимых значения:

  • никогда (не требует пояснений)
  • insert (извлечет сгенерированное значение только для вставок)
  • всегда (всегда возвращает сгенерированное значение).
1 голос
/ 17 марта 2009

Вы можете обойти эту проблему, создав перехватчик, который устанавливает эти значения, но, разумеется, эти значения не генерируются вне поля СУБД ...

Это может быть обходной путь, поскольку я также не знаю, как убедиться, что БД заполняет эти значения, но я также заинтересован в другом решении этой проблемы. :)

...