linq的decimal类型保存到数据库只保存到小数点后两位的问题

摘要:
今天,一个将十进制数据保存到数据库的问题困扰了我很长时间。最后,解决了一个小的设置问题……不多说,只说问题,但回答:问题:linq当使用EF-DbContext将十进制类型数据保存到数据库时,默认情况下只保存小数点后的前两位小数,其余的将设置为0;例如,如果保存了1.23456789,则数据库中实际保存的数据为1.23000000;想想看。精确到小数点后的多位数

今天的一个decimal类型保存到数据的问题困扰了我很长时间,最后就是一个小小的设置问题解决······坑······深坑····

话不多说,直接说问题,在说答案:

问题:linq当采用EF的DbContext保存decimal类型数据到数据库,默认只会保存小数点后的前2位小数,其余均置0;

        例如保存1.23456789,实际存到数据库里的数据为1.23000000;

就是那么坑想想精确到小数点后面在多位也不行,就给你两位,这个肯定满足不了我的要就呀,linq那么强大肯定有哪里可以设置的,这不问题就是这样解决的:

解决方法:在创建DbContext时,重写DbContext.OnModelCreating()方法;然后通过如下方法指定精度:

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            //解决DbContext保存decimal类型数据到数据库,默认只会保存小数点后的前2位小数,其余均置0的问题,这样就会保存小数点7位了
            modelBuilder.Entity<Models_VideoDeviceInfo>().Property(p => p.LongitudeX).HasPrecision(18, 7);
            modelBuilder.Entity<Models_VideoDeviceInfo>().Property(p => p.LatitudeY).HasPrecision(18, 7);
            modelBuilder.Entity<Models_VideoResource>().Property(p => p.Latitude).HasPrecision(18, 7);
            modelBuilder.Entity<Models_VideoResource>().Property(p => p.Longitude).HasPrecision(18, 7); 
        }

就是那么简单,害我捯饬半天,我去哭会······

免责声明:文章转载自《linq的decimal类型保存到数据库只保存到小数点后两位的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇15个必知的Android开发者选项Oracle常用dump命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ASP.NET Core Web API下事件驱动型架构的实现(五):在微服务中使用自我监听模式保证数据库更新与消息派发的可靠性

在上一讲中,我介绍了CQRS架构中聚合与聚合根的实现,并通过单元测试验证了设计的正确性。这部分内容比较难,在实际应用过程中存在一定的门槛,所以感觉关注的读者并不是特别多。然而,CQRS本身作为一种事件驱动型架构,解决了现在流行的微服务中的一些细节问题,我认为还是非常有必要探究讨论的。这部分内容我会在另外讨论微服务架构的文章中详细注解,在这里就不多做说明了。...

SQL数据库设计的命名规范

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 1 相关的设计规范:1.1 采用有意义的字段名尽可能地把字段描述的清楚些。当然,也别做过头了,比如CustomerShippingAddressStreetLine1 虽然很富有说...

(02)mongodb 数据库与collection的基本操作

1、查询数据库。 show dbs;或者show databases; 2、创建数据库,必须创建collection,如果只有use shop; 不会创建数据库。 use shop; db.createCollection('goods'); 3、删除数据库。 use shop; db.dropDatabase(); 4、查询collection,先用us...

SQL Server内存理解的误区

 SQL Server内存理解 内存的读写速度要远远大于磁盘,对于数据库而言,会充分利用内存的这种优势,将数据尽可能多地从磁盘缓存到内存中,从而使数据库可以直接从内存中读写数据,减少对机械磁盘的IO请求,提高数据读写的效率。 内存对数据库而言是如此的重要,因此只要在涉及数据库优化的地方,我们都可以看到内存的身影。我们通常会想尽各种办法来优化数据库内存的使用...

visual studio 2017使用NHibernate4.0连接oracle11g数据库

   之前一直是公司用NHibernate2.1来做项目,连接oracle 10g的数据库,配置NHibernate的东西都是以前的同事做好了的,也怪自己太懒了,没尝试过配置这个东西,虽然一直在使用NHibernate做项目,前几天突然有想法想用NHibernate自己做一个项目,才发现配置一个NHibernate并没有想象中的简单,前前后后大概花了五天时...

C# SQLite 创建数据库的方法增删查改语法和命令

SQLite介绍   SQLite是一个开源、免费的小型RDBMS(关系型数据库),能独立运行、无服务器、零配置、支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准。 SQLite数据库官方主页:http://www.sqlite.org/index.html   cmd下sqlite的使用网   1:选择下载对应自己系统的sqlite.3exe...