【问题标题】:ef4 poco double/float dbtype mappingef4 poco double/float dbtype 映射
【发布时间】:2015-04-17 20:53:07
【问题描述】:

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

首先有一个舍入问题,我认为是浮点数学的典型问题,所以因为所有的精度都已经设置为 2 位小数,我切换到在 c# (EF) 端使用小数类型,但现在当我尝试获取实体时,我得到一个异常,说我遇到了麻烦。

“YYY”上的“xxxkg”属性无法设置为“双倍”值。 您必须将此属性设置为“十进制”类型的非空值。

xxxkg在数据库中为float null,具体情况下为10,在类中为10

public decimal? xxxkg { get; set; }

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 是的,它确实让我先做,但是当我需要更新表中的现有条目时,它表现不佳并引发错误。所以,我使用双精度,并使用 Math.Round() 来设置精度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多