你的位置:首页 > 软件开发 > ASP.net > linq的decimal类型保存到数据库只保存到小数点后两位的问题

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

发布时间:2016-08-11 17:00:36
今天的一个decimal类型保存到数据的问题困扰了我很长时间,最后就是一个小小的设置问题解决······坑·&midd ...

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

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

问题:get='_blank'>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);     }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

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

关键词:数据库

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。