【c#笔记】如何通过EF Core读写sql server的类似double型字段

===============================================

 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

 

posted @ 2019-08-31 23:58  粽先生  阅读(824)  评论(2编辑  收藏  举报