2012-01-19 12 views
1

私は既存のDBを使用しています(変更できません)。私のクラスは、タイプnumeric(18,0)の列にマップされます。これを他のものにマップしようとすると、それが破損し、Decimalにマップするよう指示されます。私もグーグルして、これが正しいタイプであることを確認しました(そしてInt64などを使って試してみました。そしてDecimalを使うように言われました)。私は、小数点を使用する場合、私はこのエラーを取得:数値(18,0)を10進数にマッピングすると、Entity Frameworkが破損する

Common Language Runtime detected an invalid program.

だから、私がこの列にマップすることができないことが表示されます。私はビューにマッピングしていますが、おそらく私の見解からこの値を文字列として返すことができますか?する必要がありますか?値が大きすぎるとそれをマップする方法はありませんか?

+0

をいくつかのコードは、おそらく役立つだろう。 –

+0

は32ビットモードまたは64ビットモードで動作するプログラムですか?ターゲット環境(32ビットまたは64ビット)はどうですか?最後にこれはASP.NETアプリケーションですか? – Skyrim

+0

私は64ビットコンピュータ上で動作しており、MVCアプリケーションです。そのようなことがEntity Frameworkの仕組みを変えることに驚いています。 [Key]から離れて投稿するコードはありません [Column( "SERIAL_NUM")] パブリック仮想Decimal SerialNumber {get;セット; }私はDBにある型を教えてきました。 – cgraus

答えて

2
+0

はあなたが正しいように見えます。私はWindows 7 64ビットを実行しているので、64ビットが問題だと思います。私はそれを文字列に変換しましたが、これは素晴らしいものではありませんが、動作しています。ありがとう – cgraus

0

Sql Server Compactをあなたのコンピュータにインストールしましたか? 64ビットマシンを実行している場合は、Sql Server Compact 64 bit versionをインストールしてください。

関連する問題