データベースフィールドは10進数(9,9)として定義されています。 C#のedmxモデルは、このフィールドを精度と位取りが9の10進変数にマップします。余分な小数点以下の桁の追加を省く
変数に5を入れます。私が確認できるところでは、値を5(ローカル変数、エンティティクラスインスタンス、データコンテキストなど)として表示します。
DataContex.SaveChanges()
の時点で、値は "5.000000000"に変換されます。データベースに保存する前に、エンティティフレームワークが値に小数点以下9桁を追加していることが分かります。値の桁数が多すぎるため、エラーが発生します。
誰もがこの動作の原因とその変更方法を知っていますか?
追加情報 - 私はMicrosoft SQL 2008 R2でデータベースを作成し始めました。その後、データベースからEntity Frameworkモデルを生成しました。
5を文字列として保存しますか?または小数として?またはint? – abatishchev
プログラムでは、値5.0を入力しました。変数を調べると、Visual Studioで5の「小数」値が表示されます。 –
@abatishchev数値リテラルについて言えば、5.0は倍ですが、5.0mは小数です。 – phoog