加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle – EF ODP.NET:指定的值不是’Edm.Decimal’类型的实例

发布时间:2020-12-12 16:25:09 所属栏目:百科 来源:网络整理
导读:我正在使用Oracle的托管ODP.NET客户端和Entity Framework.它工作正常.但是我在不同的服务器上有不同的行为.我很确定它与DLL版本有关,但到目前为止我找不到任何差异. 我有这些表: create table parent ( parent_id number primary_key,data varchar2(100));c
我正在使用Oracle的托管ODP.NET客户端和Entity Framework.它工作正常.但是我在不同的服务器上有不同的行为.我很确定它与DLL版本有关,但到目前为止我找不到任何差异.

我有这些表:

create table parent (
   parent_id number primary_key,data varchar2(100)
);
create table child (
   child_id number primary key,parent_id number references parent(parent_id)
);

而这些实体:

public class Parent {
    Int32 Id { get; set; }
    string Data { get; set; }
}
public class Child {
    Int32 Id { get; set; }
    Parent Parent { get; set; }
}

这是代码:

Entities e = new Entities(connectionString);
Parent p = new Parent();
parent.Data = "TEST DATA!";
Child c = new Child();
c.Parent = p;
e.Children.AddObject(c);
e.SaveChanges(); // exception here,in one server,not on the other

我有一个触发器自动填充两者(父和子)上的id,我在实体框架配置上使用Store Generated Pattern = Identity.

我的问题是:

在我的开发机器上,它按预期完美地工作.两行都插在各自的表中.但是,在服务器上,我收到一条错误消息:指定的值不是“Edm.Decimal”类型的实例.

更多信息:

Oracle.ManagedDataAccess(v 4.121.1.0)
实体框架(v v4.0.30319.1)

在两个:开发机器(工作)服务器(不工作).

想法?

尝试将Id列的定义从Int32更改为Decimal.我已经多次遇到过这个问题而且我认为已经解决了这个问题.
public class Parent {
    Decimal Id { get; set; }
    string Data { get; set; }
}
public class Child {
    Decimal Id { get; set; }
    Parent Parent { get; set; }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读