zoukankan      html  css  js  c++  java
  • linq的decimal类型保存到数据库只保存到小数点后两位的问题

    今天的一个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); 
            }

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

  • 相关阅读:
    Shell——2
    Vim-快捷命令
    Shell——1
    linux命令笔记
    小飞机 + zeal 安装
    linux 环境下 假设被cc攻击,请从linux日志文件找出黑客ip地址
    日志文件例子
    最大子列和的四种方法,时间复杂度递减,直至为线性复杂度
    递归很耗内存+多项式求值的两种方法+c语言计时方法
    线代 第六章 二次型
  • 原文地址:https://www.cnblogs.com/sxw117886/p/5761251.html
Copyright © 2011-2022 走看看