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 に答える