实体框架:' IngramMicro_RetailPrice'英格兰的IngramMicro'无法设置为“System.Double”'值

时间:2015-07-15 21:19:04

标签: c# entity-framework csv invalidoperationexception

我正在使用Entity Framework Code First方法 - TPH将CSV读入SQL Server。读入文件并将其映射到特定分发服务器对象的特定属性。我可以成功地阅读经销商的特定文件:' IngramMicro'并将其存储在数据库中。但是,一旦该分发服务器位于数据库中,任何从任何分发服务器读取任何CSV的尝试都会抛出此异常:     System.InvalidOperationException:' IngramMicro_RetailPrice'英格兰的IngramMicro'无法设置为“System.Double”'值。您必须将此属性设置为类型为' System.Decimal'的非空值。

IngramMicro拥有此属性:     公共小数IngramMicro_RetailPrice {get;组; }

SQL将其存储为浮动。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可能正在处理该属性上的NULL值。将类型从十进制更改为十进制?(可为十进制)。

SQL数据类型也应为小数。

答案 1 :(得分:0)

似乎在SQL Server中手动将数据类型更改为十进制(18,2)修复了问题。谢谢弗朗西斯科!