2017-06-23 74 views
0

我在使用PetaPoco将一个十进制值插入数据库时​​遇到了问题。使用petapoco将十进制插入到数据库时出错

在我的模型我有广告载体:

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

,并在DATABSE相关列Price的类型是decimal(18, 2)

的当我做插件:

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

我m出现错误:

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

你并不需要翻译什么。你*看过*错误信息了吗?您正试图将整数字节保存或读取到整数字段中 –

+0

发布* full *异常,包括其调用堆栈,表架构和*可重现*代码示例。也许你在数据库和数据库中定义了'ID(数字(18,2)'和类型'int',导致ORM试图检索自动生成的ID时发生错误 –

+0

我写了正确的代码。不知道如果对待我像一个白痴是一个解决方案。 – nickornotto

回答

0

您可以使用此decimal?

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

这不是错误所在。您不需要一个可以为空的小数来将数据存储在十进制数据库字段中 –

+0

谢谢。这是行不通的 - 事实证明这是另一个字段是整数的错误,不知道它为什么要喊十进制,而与模型中唯一的十进制属性完全没有关系。 – nickornotto

相关问题