use*_*733 7 entity-framework asp.net-mvc-4
我试图使用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);
}
Run Code Online (Sandbox Code Playgroud)
2个问题 - 我是否应该在上下文文件中修改OnModelCreating - 即使它警告更改可能会在重新生成时丢失,如何使代码不会舍入小数?
任何帮助赞赏!
我是否应该修改上下文文件中的 OnModelCreating - 即使它警告更改可能会在重新生成时丢失,以及如何防止代码四舍五入?
否 - 在另一个文件中实现上下文的部分类并在那里实现 OnModelCreating
至于精度 - 您是否检查了调试器中对象中的值与页面上显示的值?舍入可能发生在渲染期间。
尝试将DisplayFormat属性添加到实体类的属性中:
[DisplayFormat(DataFormatString = "{0:0.0#####}", ApplyFormatInEditMode = true)]
Run Code Online (Sandbox Code Playgroud)