作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
INSERT INTO [Location]
(Name,
Lat,
Lon)
VALUES ('my address' /* @p0 */,
-58.37538459999996 /* @p1 */,
-34.5969468 /* @p2 */);
顺便说一下,这是绝对正确的。这是我的 Location 表的设计:
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](255) NULL,
[Lat] [decimal](23, 20) NULL,
[Lon] [decimal](23, 20) NULL,
但是在sqlserver management studio中看到inserted的数据时,是可以看到inserted的
-58.37538000000000000000 而不是 -58.37538459999996000000 和
-34.59694000000000000000 而不是 -34.59694680000000000000。
当我手动执行此插入查询时,它会正确插入值(Lat 列的 14 位小数),但如果 nhibernate 这样做,它只会插入 5 位小数。
有什么想法吗???
最佳答案
默认的 precision
和 scale
存在问题。 NHibernate 默认的 decimal
表示是 decimal (28,5)
,所以这就是为什么最后的 INSERT 语句只包含 5 个小数位。 XML映射
<property name="Lat" precision="23" scale="20" />
<property name="Lon" precision="23" scale="20" />
流利的:
...
.Precision(23)
.Scale(20)
现在 INSERT 语句将是 decimal (23,20)
。
关于NHibernate Profiler 在骗我?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14544572/
我是一名优秀的程序员,十分优秀!