2012-02-07 13 views
0

浮動小数点数の2倍のフィールドを持つデータベースがあり、DAL/ORMにEF4.1を使用しましたが、データを読み書きするときに問題があります。フィールドのタイプ。エンティティを構成するためにモデルビルダーを使用するだけで、モデルはありません。ef4 poco double/float dbtypeマッピング

浮動小数点数学の典型であると思う丸めの問題がありましたので、すべての精度が既に2小数点に設定されているので、C#(EF)側で小数点タイプを使用しましたが、エンティティを取得しようとしていますが、私は困っているという例外があります。

'YYY'の 'xxxkg'プロパティを 'Double'値に設定できませんでした。 このプロパティーを 'Decimal'タイプの非NULL値に設定する必要があります。

xxxkgは、データベース上のfloat nullで、値が特定のケースでは10で、クラスでそれが

public decimal? xxxkg { get; set; } 

ある質問はEF4でDBTYPEフロート/ダブル変数に対処する方法です(ポコ)?

答えて

0

プロパティがデータベースで2倍の場合、プロパティを小数点として定義することはできません。 EFは型変換を行わず(独自の定義も許可しません)、double型の値を10進変数に代入することはできません。したがって、クラスを読み込みレコードから読み込むことはできません。ダブルを使用する必要があります。

+0

ええ、最初にやってみましたが、テーブルの既存のエントリを更新する必要があるとき、うまく再生できず、エラーが発生しました。だから、私はダブルを使用して、Math.Round()を使って精度を設定しています。 – hazimdikenli

関連する問題