首先防止实体框架数据库中的小数四舍五入

我正在尝试使用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 - 尽管它警告更改可能会在重新生成时丢失,并且如何保持代码不会舍入小数?

任何帮助感谢!


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

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

至于精度 - 是否检查了调试器中的对象中的值与页面上的显示值? 舍入可能在渲染过程中发生。

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

[DisplayFormat(DataFormatString = "{0:0.0#####}", ApplyFormatInEditMode = true)]
链接地址: http://www.djcxy.com/p/70493.html

上一篇: Prevent decimal rounding in Entity Framework database first

下一篇: How do I grab frames from a video stream on Windows 8 modern apps?