【发布时间】:2013-07-23 14:17:56
【问题描述】:
我有一个使用 nhibernate 和 fluent-nhibernate 的应用程序。我们使用的是 SQL Server 2008,我有一个带有浮点列的表,因为我们没有固定的精度,用户可以设置任意数量的小数位(1、10、25 位小数等)。我像这样使用 fluent-nhibernate 映射它:
Map(x => x.Factor).Column("FACTOR").Not.Nullable();
我也试过了:
Map(x => x.Factor).Column("FACTOR").Precision(53).Not.Nullable();
还有这个:
Map(x => x.Factor).Column("FACTOR").CustomSqlType("float").Not.Nullable();
它不起作用。看我的数据库截图:
字段因子是我的浮点列,最后一个注册表的数字为1,234567891,当nhibernate 在数据库上查询时,它在C# 中带有1,123456788,C# 正在对值进行四舍五入。我们需要原始值。
我怎样才能让它工作?
【问题讨论】:
-
您的数据库列定义?
-
我在sql server上的专栏是
float. -
Map(x => x.Factor).Column("FACTOR").Scale(53).Precision(54).CustomSqlType("float").Not.Nullable();跨度>
-
我认为问题在于 db 上的浮点数...您应该使用小数...
-
我会尝试,但是
decimal类型有多少位小数?
标签: c# nhibernate floating-point fluent-nhibernate