次の問題は、Fluent NHibernateによってSQL Server 2008 R2に接続された ASP.NET MVC 4 の Web API アプリケーションで実行されています。
したがって、15 の整数と 14 の小数点以下の桁数までの値を保持できる10 進数を格納できるこのフォームがあります。データベース列はdecimal(29,14)
、マップされたプロパティと同じように定義されますMap((x) => x.Factor).Column("FACTOR").Precision(29).Scale(14).Not.Nullable()
。
そのフィールドのデータは、この mask999999999999999.99999999999999
に任意の値を保持する必要がありますが、そうではありません。その数により、OverflowExceptionが発生します。これは、リファレンスに記載されている数の制限によるものだと思います: C# and SQL Server。
-7.9x1028 to 7.9x1028
この表記法(C# リファレンスから) または(SQL Server リファレンスから)は本当にわかりませんが-10^38 +1 to 10^38 -1
、エラーはトランザクション コミット アクションにあるため、数値を制限するのは SQL Server の 10 進数だと思います。ViewModel は正しい数値を示しています。
アプリケーションの値を受け入れるには、テーブル列にどの精度/スケールを設定する必要がありますか?