Nhibernate Nhibernat-won';t正确地保留双精度小数

Nhibernate Nhibernat-won';t正确地保留双精度小数,nhibernate,Nhibernate,在MS Access数据库中尝试使用NHibernate持久化double时,我遇到以下问题 NHibernate报告的SQL: NHibernate:updatemytable SET MyDoubleColumn=?其中Number=?和行=@p0=5.8,@p4=161447,@p5=1 根据这一点,MyDoubleColumn应该设置为“5.8”,然而,数据库中存储的是“58”。逗号/圆点消失了 有什么想法吗 这不是文化问题,将文化更改为en-US不会改变行为。使用“.”而不是“,”结果

在MS Access数据库中尝试使用NHibernate持久化double时,我遇到以下问题

NHibernate报告的SQL:

NHibernate:updatemytable SET MyDoubleColumn=?其中Number=?和行=@p0=5.8,@p4=161447,@p5=1

根据这一点,MyDoubleColumn应该设置为“5.8”,然而,数据库中存储的是“58”。逗号/圆点消失了

有什么想法吗


这不是文化问题,将文化更改为en-US不会改变行为。

使用“.”而不是“,”

结果是,我在排除故障时把事情搞混了。我试图将十进制值保存到数据库中的十进制列中

我还尝试将它保存到一个双栏,但得到了相同的错误。当我编辑Nhibernate.JetDriver将我的十进制值更改为双精度并保存到十进制列时,事情开始按预期工作。别问我为什么:-)


以下修补程序描述了修复方法:

您能显示分配值的代码吗?可能是区域性问题?“,”而不是“.”反之亦然?设置属性的代码只是“row.MyDoubleColumn=5.8”;该值存储为可为空的双精度。您不应该在双精度中存储双精度而不是在双精度中存储小数吗?是否有点或逗号取决于当前区域性(在本例中为(sv SE)).但是从我所读到的NHibernate打印参数值的方式来看,SQL输出与在实际SQL中显示值的方式不同。无论如何,我不确定如何更改NHibernate的区域性。