Значение NHibernate UserType для объекта - PullRequest
0 голосов
/ 15 марта 2010

Я использую UserType для поддержки столбца (Создано) в моей БД.

При сохранении в db я просто проверяю, равняется ли указанное свойство DateTime.MinValue, и если да, то обновляет его до DateTime.Now (переопределяя NullSafeSet). Однако это обновление не сразу отражается в nhibernate, и если я снова загружу объект, не удаляя его, значение Created будет по-прежнему DateTime.MinValue.

Существуют ли другие способы получения значения, возвращаемого NHibernate для возврата обновленного значения, кроме использования Session.Evict ()?

1 Ответ

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

Вы можете (и, вероятно, должны) сделать это, подключив события pre-insert и pre-update вместо использования IUserType. Проверьте этот вопрос для получения дополнительной информации.

Чтобы сделать то, что вы хотите со своей сущностью, вы можете привести evt.Entity к интерфейсу, который поддерживает ваше поле (IHasLastModified в примере), и установить значение.

...