Сохранение начальных нулей при отображении NUMERIC (5,0) в строку - PullRequest
0 голосов
/ 27 марта 2011

Надеюсь, это простой вопрос.У меня есть устаревшая база данных DB2 на AS / 400, где такие поля, как почтовый индекс, хранятся как NUMERIC.При отображении их в NHibernate они рассматриваются как целые числа, и ведущие нули теряются.Обычно я бы использовал

SELECT DIGITS(field) FROM TABLE

, чтобы сохранить начальные нули, но, насколько я понимаю, если я пойду создавать формулы для правильного форматирования, я заставлю поле стать только для чтения.* Как правильно отобразить тип NUMERIC (с его начальными цифрами) в строковый тип и обратно?

Ответы [ 2 ]

1 голос
/ 27 марта 2011

Вы пытаетесь справиться с этим на неправильном уровне.

Ведущие нули - это проблема отображения;просто используйте "00000" в качестве строки формата.

0 голосов
/ 27 марта 2011

Диего прав, но если вам действительно нужно представлять почтовые индексы в виде строк в вашем домене, вы можете реализовать свой собственный IUserType и использовать его в своих сопоставлениях. Тем не менее, я не уверен, что вы сможете обработать получение ведущих нулей в столбце числовой базы данных (если это то, что вам нужно). Я думаю, было бы достаточно легко, если бы вы сохранили свой почтовый индекс как «392» в базе данных, а затем представили его как «00392».

Для краткого обзора того, что связано с созданием IUserType, взгляните на этот пост в блоге: Отображение строк в логические значения с использованием IUserType NHibernate

...