我正在尝试让函数导入正常工作。 EF调用我的存储过程,但结果有一个我不明白的内部异常:
var result = context.SomeFunctionImport();
我明白了:
'SomeClass'上的'Cnt'属性无法设置为'Double' 值。您必须将此属性设置为类型的非null值 '十进制'。
以下是Cnt
上的SomeClass
属性:
[DataMember]
public Nullable<decimal> Cnt
{
get { return _cnt; }
set
{
if (_cnt != value)
{
OnComplexPropertyChanging();
_cnt = value;
OnPropertyChanged("Cnt");
}
}
}
private Nullable<decimal> _cnt;
答案 0 :(得分:2)
您需要像下面这样定义:public decimal Cnt
答案 1 :(得分:2)
发现了这个问题。我的存储过程在舍入操作后错过了Cnt上的强制转换。
答案 2 :(得分:2)
我认为这个字段是数据库表中的float类型。 所以你需要将它设置为双倍?如果此字段可以为空或以其他方式使用双
public double? field_name {get; set}
// or
public double field_name {get; set}
这对我有用
答案 3 :(得分:0)
我有这个问题,我的问题是在DB上,类型是真实的,在EF类中声明为十进制。我刚刚将数据库类型更改为实际并解决了问题。