===============================================
2019/8/31_第1次修改 ccb_warlock
===============================================
用过sql server的人可能会觉得奇怪,sql server的字段类型并没有double,为什么是这么个标题?
主要是通过c#中double型的数据在sql server中读写时踩到的坑,由此做了这篇记录。
最近第一次写EF Core读写sql server时,其中的一个属性类型在C#内定义为double,而一插sql server的字段类型只有下面4种可以存小数类型:
decimal float numeric real
最初我想当然的认为,可以选用decimal来存double型,结果查询的时候提示格式不匹配。
EF Core在读写sql server时不支持将decimal转成double来显示(其实想想也是,decimal的精度比double高,从decimal转到double会出现数据丢失的情况,框架当然要报错)。
查了资料后才知道,sqlserver数据表的Float对应Double,换句话说,如果C#内定义了double或float型的属性时,都可以映射为sql server的float型字段。
(oracle提供number,mysql则分别提供了float、double,这么一对比sql server的这个设计是不是个坑?)
参考资料:
1.https://bbs.csdn.net/topics/60228284
2.https://blog.csdn.net/qq_27376871/article/details/51321175
3.https://www.cnblogs.com/ShaYeBlog/p/8287587.html
4.https://www.cnblogs.com/yachao1120/p/7879532.html