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

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

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

<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 предположит, что любое свойство является нулевым (not-null="false"), если вы не сообщите об этом иначе.

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

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