ef4 poco double / float dbtype mapping

时间:2012-02-07 08:40:42

标签: entity-framework entity-framework-4 poco

我有一个带有几个浮点/双字段的现有数据库,我选择使用 EF4.1 作为我的DAL / ORM,但是我在读取/保存数据到他的类型时遇到了问题领域。没有模型,仅使用模型构建器来配置实体。

首先有一个舍入问题,我认为是浮点数学的典型问题,所以因为所有的精度都已经设置为2位小数,所以我转而在c#(EF)方面使用十进制类型,但是现在我在试图获得一个实体,我得到一个例外,说我遇到了麻烦。

  

'YYY'上的'xxxkg'属性无法设置为'Double'值。   您必须将此属性设置为“Decimal”类型的非null值。

xxxkg在数据库中是float null,在特定情况下值为10,在类中它是

public decimal? xxxkg { get; set; }

问题是如何用EF4(poco)处理dbtype float / double变量?

1 个答案:

答案 0 :(得分:0)

如果属性在数据库中为double,则无法将属性定义为十进制。 EF不进行类型转换(并且不允许您定义自己的转换),并且不能将double值分配给十进制变量,因此从读取记录中填充您的类将失败。你必须使用双倍。