7

我正在尝试使用 c#、实体框架 - 数据库优先和 mvc 向 ms sql 数据库写入/读取纬度和经度。

问题是纬度/经度仅显示 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 - 即使它警告更改可能会在重新生成时丢失,以及如何防止代码四舍五入?

任何帮助表示赞赏!

4

1 回答 1

4

我是否应该修改上下文文件中的 OnModelCreating - 即使它警告更改可能会在重新生成时丢失,以及如何防止代码四舍五入?

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

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

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

[DisplayFormat(DataFormatString = "{0:0.0#####}", ApplyFormatInEditMode = true)]
于 2013-03-29T16:09:46.647 回答