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

实体框架,将oracle数据库类型号(10)映射到.net Int32

发布时间:2020-12-12 13:11:36 所属栏目:百科 来源:网络整理
导读:oracle数据库中的字段,类型编号(10),大于.net Int32范围. 我现在使用实体框架从该表中获取数据,并将其映射到该表的数据库实体.但是,当我获取数据时,我收到此错误: var competitions = db.PKG_API_PORTAL_SP_GETFBCOMPETITION().ToList(); The type of the k
oracle数据库中的字段,类型编号(10),大于.net Int32范围.
我现在使用实体框架从该表中获取数据,并将其映射到该表的数据库实体.但是,当我获取数据时,我收到此错误:
var competitions = db.PKG_API_PORTAL_SP_GETFBCOMPETITION().ToList();

The type of the key field ” is expected to be ‘System.Int32’,but
the value provided is actually of type ‘System.Int64’.

我发现了这个问题Oracle Data Provider to CLR type mapping

这是解释数据类型如何翻译的文章
http://www.devart.com/dotconnect/oracle/docs/DataTypeMapping.html

但现在我需要一个解决方案来解决这个问题.

我假设你正在使用带有EF的DotConnect For Oracle,你从函数/ SP返回一个Refcursor,它被投射到一个数据类型.

您有三个选项可以解决此问题:
1-将要映射的对象中的类型更改为Int64.这是最简单的解决方案.如果您正在使用实体开发人员,只需在映射中选择类型,将类型更改为“int64”,单击“确定”,重新生成类.

2-更改返回的Refcursor,将数字(10)向下转换为数字(9).这可能会损害性能,并最终会破坏某些东西,所以我不推荐它.

(编辑:李大同)

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

    推荐文章
      热点阅读