2017-06-23 5 views
0

PetaPocoを使用してデータベースに10進値を挿入する際に問題が発生しました。私のモデルではpetapocoでデータベースに小数点を挿入する際のエラー

私はproeprty持っている:

[Column("Price")] 
    public decimal PriceTotal { get; set; } 

をしてdatabseに関連するコラムPriceは、私は、インサート行うとタイプのdecimal(18, 2)

です:

public void InsertModel(MyViewModel model) 
    { 
     _database.Insert(model); 
    } 

を私は」エラーが発生しました:

System.InvalidCastException: 'Invalid cast from 'System.Decimal' to 'System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'.' 

それ以外はどうすればいいのでしょうか? decimalはSQLサーバのdecimal(18,2)に翻訳されていませんか?

+0

を使用することができます。エラーメッセージをお読みになりましたか?整数フィールドに10進数を保存または読み取ろうとしています –

+0

呼び出しスタック、テーブルスキーマ、および再現可能な*コード例を含む*完全な例外を投稿してください。おそらく、databseの 'numeric(18,2)'とクラスの 'int'を定義し、ORMが自動生成されたIDを取得しようとするとエラーになるかもしれません。 –

+0

私は自分のものを正確に書きました。私を馬鹿のように扱うことが解決策であるかどうかは分かりません。 – nickornotto

答えて

0

あなたはあなたが何を翻訳する必要はありません。このdecimal?

[Column("Price")] 
public decimal? PriceTotal { get; set; } 
+0

これはエラーの原因ではありません。 10進数のデータベースフィールドにデータを格納するためのNULL可能な10進数は必要ありません –

+0

ありがとうございます。これはうまくいきません - 整数である別のフィールドのエラーであることがわかりました。モデル内にある唯一の10進数のプロパティにはまったく関連していなかったのに対し、なぜ10進数で叫んだのか分かりません。 – nickornotto

関連する問題