0

EF 5 経由でデータベースに double 値を挿入しようとしています。db から EF エンティティ モデルを生成しました。テーブルには float の price 列があり、当然 EF はマッパー クラスの double 型を生成しました。ファイルからいくつかの文字列値を読み取り、それを double に変換して db に保存します。デバッグすると、値が正しく変換されていることがわかります。たとえば、文字列値"120,53"は double のよう120.53に変換されますが、問題ありません。しかし、コンテキストを保存すると、 のように db に移動し"12053"ます。

何がそのような問題を引き起こす可能性がありますか? これと関係のある SQL Server の設定はありますか?

4

1 に答える 1

0

問題は Convert.ToDouble と 、小数の代わりに使用されていることにあると思います。数値のカルチャを指定しないと、代わりに , を 1000 分の 1 の区切り記号として解釈し、無視する可能性があります。環境のカルチャが , を小数点として使用する場合は、2 番目の引数 (IFormatProvider) として CultureInfo.CurrentCulture を渡してみてください。または、小数を , に置き換えているように見えるので、置き換えないでください。

于 2013-05-23T20:48:16.377 に答える