NHibernate 2. * файлы сопоставления: как определить тип DateTime, допускающий значение NULL (DateTime?)?

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

По понятным причинам не работает:

<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? все само по себе.

Спасибо @Justice!

Ответов (1)

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

Если очень хочется, должно получиться что-то вроде ...

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