Файлы сопоставления NHibernate 2. *: как определить обнуляемый тип DateTime (DateTime?)? - PullRequest
15 голосов
/ 27 февраля 2009

Я знаю одно из серьезных изменений в NHibernate 2. * - это то, что NHibernate.Nullables больше не поддерживаются. Следовательно, что вы используете в своем файле отображения для сопоставления обнуляемого DateTime? тип? Для т. Е .:

Понятно, не работает:

<property name="CreateDate" column="CreateDate" type="DateTime?" not-null="false" />

и больше не поддерживается:

<property name="ModifiedDate" column="ModifiedDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" not-null="false"/>

Я знаю, это должно быть так очевидно, но я не нахожу это!

Ответ так же прост: NHibernate размышляет над рассматриваемым классом и обнаружит, что отраженным типом свойства является DateTime? все само по себе.

Спасибо, @ Справедливость!

1 Ответ

29 голосов
/ 27 февраля 2009
<property name="CreatedDate" />
  • NHibernate отразит над рассматриваемым классом и обнаружит, что тип отраженного свойства DateTime? полностью сам по себе.
  • NHibernate будет считать, что имя столбца по умолчанию совпадает с именем свойства, если вы не укажете иное.
  • NHibernate будет предполагать, что любое свойство имеет значение null (not-null="false"), если вы не укажете это иначе.

Если вы действительно хотите, это должно быть что-то вроде ...

<property name="CreatedDate" type="System.Nullable`1[[System.DateTime, mscorlib]], mscorlib" />
...