加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

entity-framework – 首先阻止Entity Framework数据库中的十进制

发布时间:2020-12-12 07:07:55 所属栏目:MsSql教程 来源:网络整理
导读:我试图使用c#,实体框架 – 数据库优先和mvc来编写/读取ms sql数据库的纬度和经度. 问题是lat / long只显示2位小数,即使它们在数据库中是正确的.数据库的字段为数字(18,6). 我修改了上下文文件,如下所示: protected override void OnModelCreating(System.Dat
我试图使用c#,实体框架 – 数据库优先和mvc来编写/读取ms sql数据库的纬度和经度.

问题是lat / long只显示2位小数,即使它们在数据库中是正确的.数据库的字段为数字(18,6).

我修改了上下文文件,如下所示:

protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<STORE_LOCATION>().Property(location => location.LATITUDE).HasPrecision(18,6);
        modelBuilder.Entity<STORE_LOCATION>().Property(location => location.LONGITUDE).HasPrecision(18,6);
    }

2个问题 – 我是否应该修改上下文文件中的OnModelCreating – 即使它警告更改可能会在重新生成时丢失,如何保持代码不会舍入小数?

任何帮助赞赏!

解决方法

Should I be modifying the OnModelCreating in the context file – even though it warns changes may be lost on regeneration and how do I keep the code from rounding the decimals?

否 – 在另一个文件中实现上下文的部分类,并在那里实现OnModelCreating

至于精度 – 您是否检查过调试器中对象的值与页面上显示的值?在渲染期间可能发生舍入.

尝试将DisplayFormat属性添加到实体类中的属性:

[DisplayFormat(DataFormatString = "{0:0.0#####}",ApplyFormatInEditMode = true)]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读