2012-02-07 65 views
0

我有一个退出的数据库,有几个float/double字段,我选择使用EF4.1为我的DAL/ORM,但我在读取/保存数据时遇到问题字段类型。没有模型,只需使用模型构建器来配置实体。我认为浮点数学是典型的,因为所有的精度都被设置为2位小数,我在c#(EF)方面切换到使用十进制类型,但是现在当我我试图找到一个实体,我得到一个异常说我有麻烦。ef4 poco double/float dbtype mapping

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

xxxkgfloat null的数据库,该值是10在特定的情况下,并在课堂上是

public decimal? xxxkg { get; set; } 

的问题是如何处理与EF4 DBTYPE浮点/双精度变量(POCO)?

回答

0

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

+0

是的,它确实让我先做,但是当我需要更新表中现有的条目时,它不能很好地发挥作用并抛出错误。所以,我使用double,并执行Math.Round()来设置精度。 – hazimdikenli 2012-02-13 07:53:26