8
私はEntity Framework 6.1、コードファーストを使用しています。 SQL Serverから10進数を格納/取得しようとしていますが、正確な精度は取得されません。私は.csvファイルから読み込み、データを処理してDBに挿入します。 .csvファイル内EF不正確な小数精度を取得します
- 値:
1.1390
- 値インポートから
decimal
として保存:DBに挿入1.1390
- 値:
1.139
- 値実際SSMSに示した/格納されている:
1.1390
- クエリを手動で実行するときの値SQLプロファイラは取得のためにキャプチャします。
1.1390
- EFで取得できる値:
1.1300
すべてが値を取得するため除いて取り組んでいます。私はすべての他のSOのポスト(下記)で与えられた解決策を試しましたが、効果はありません。ここで何がうまくいかないの?適切な精度で正しい値を取得するにはどうすればよいですか?
想定液:
modelBuilder.Entity<ClassA>().Property(p => p.MyDecimal).HasPrecision(19, 4);
検索方法、戻って間違った精度でClassA
を入力:
import.MyDecimal != dbValue.MyDecimal
ClassA
:
_poRepository.Table.FirstOrDefault(p => p.CompNumberA == compNum &&
p.LineNumber == lineNumber);
比較を
public class ClassA
{
// properties
public virtual decimal MyDecimal { get; set; }
}
どのように精度「1.1300」を見ていますか? –
あなたはどのようなEFアプローチを使用しているかについては言及していません。最初にコードを表示し、モデルを表示していません。誰も批判的な情報なしで誰も助けてくれるとは思わない –
@BradleyUffner DBから返された値と.csvファイルから与えられた値の違いを調べる。その比較は、彼らが不平等であることを示している。ブレークポイントで変数を見ると、Visual Studioはその値を「1.1300」と表示します。 – vaindil