FluentNHibernate: точность DateTime по умолчанию изменилась? - PullRequest
0 голосов
/ 27 марта 2019

В настоящее время я пытаюсь перейти с FluentNHibernate 1.4 / NHibernate 3.4.1 на FluentNHibernate 2.1.2 / NHibernate 5.2.4. Используемая база данных - DB2 LUW 11.1, целевая платформа .NET - 4.61.

проблемная линия отображения:

 Map(x => x.TimeStamp).Column("TS").Nullable();

Я давно написал тест на постоянство, который гарантирует, что миллисекунды не будут сохраняться из сопоставленного свойства DateTime в поле TIMESTAMP. Тест проходит со старыми сборками, но не проходит с новыми. Я должен использовать DateTimeNoMsType в качестве пользовательского типа сейчас, чтобы получить старое поведение (подумав об использовании соглашения для его общей обработки):

Map(x => x.TimeStamp).Column("TS").Nullable().CustomType<DateTimeNoMsType>();

Мой вопрос: Правильно ли я полагаю, что изменилась обработка по умолчанию свойств DateTime? К сожалению, я попытался посмотреть описание документации / основных этапов различных беглых версий nhibernate и nhibernate на GitHub, но безрезультатно ...

1 Ответ

0 голосов
/ 28 марта 2019

Нашел, это серьезное изменение по сравнению с NHibernate 5.0.0.

https://github.com/nhibernate/nhibernate-core/blob/5.1.5/releasenotes.txt

  • Тип NHibernate DateTimeType, который является значением по умолчанию для .Net DateTime, больше не сокращает дробное секунд. Используйте DateTimeNoMsType, если вы хотите сократить доли секунды. Это относится к его Local / Utc коллеги тоже.
...