我有一个带有几个浮点/双字段的现有数据库,我选择使用 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变量?
答案 0 :(得分:0)
如果属性在数据库中为double,则无法将属性定义为十进制。 EF不进行类型转换(并且不允许您定义自己的转换),并且不能将double值分配给十进制变量,因此从读取记录中填充您的类将失败。你必须使用双倍。