私のコードファーストエンティティフレームワークのSQLデータベースでは、18.3と指定された10進値があります。 データベースオブジェクト:OnModelCreatingでエンティティフレームワーク6の小数点精度
public decimal? Kolhalt { get; set; }
I値はKolhaltとして指定されたデータベースで
modelBuilder.Entity<Skada>().Property(o => o.Kolhalt).HasPrecision(18, 3);
を有する(DECIMAL(18、3)、NULL)
Iの値を入力した場合私は3つの小数点を取得しますが、EntityFrameworkで値を挿入または更新すると小数点以下2桁まで切り捨てられます。 (入力された値は5.123だった)
[Kolhalt] = @14 ... @14 decimal(18,2) ... @14=5.12
:私はEFが格納されている値のための2つの小数を指定していることがわかりますSQL Serverのプロファイラで
。
私はSaveChanges()を呼び出すと、何らかの理由でEFがデータベースに送信された値を切り捨てます。
SaveChanges()で正しく取得するには、他の場所の小数点以下の桁数を指定する必要がありますか?
敬具、 ヘンリク
こんにちは、これは私の一日を保存しました。 TruncateDecimalsToScale = falseは問題を解決しました。私は昨日これを試したと思うが、間違いをしているに違いない。私はあなたの答えをupvoteしようとしましたが、私はそれが示すために十分な評判を持っていません。 – Henrik
あなたが使用しているコンテキストにこれをどのように割り当てたかについてもっと詳しく教えてください。 – Andrew
[こちら](https://msdn.microsoft.com/en-us/library/jj680699(v=11113).aspx)を参照してください。私はちょうどコンテキストとして同じフォルダ内のクラスとしてそれを追加しました。 –