将NUMERIC(5,0)映射到字符串时保留前导零

时间:2011-03-27 17:33:40

标签: nhibernate fluent-nhibernate nhibernate-mapping

希望这是一个简单的问题。我在AS / 400上有一个遗留DB2数据库,其中Zip Code等字段存储为NUMERIC。在NHibernate中映射它们时,它们被视为整数,并且前导零丢失。通常我会使用

SELECT DIGITS(field) FROM TABLE

保留前导零,但我的理解是,如果我创建公式来纠正格式化,我强制该字段变为只读。

将NUMERIC类型(及其前导数字)映射到字符串类型然后再返回的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

你正试图在错误的水平上处理它。

领先的零是显示问题;只需使用"00000"作为格式字符串。

答案 1 :(得分:0)

迭戈是对的,但是如果你真的需要在你的域中将邮政编码表示为字符串,你可以实现自己的IUserType并在你的映射中使用它。但是,我不确定您是否能够将前导零处理到数字数据库列中(如果这是您需要的)。我认为如果您将邮政编码存储为数据库中的“392”然后将其显示为“00392”就足够了。

要快速了解创建IUserType所涉及的内容,请查看此博文:Mapping Strings to Booleans using NHibernate's IUserType