加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 站长百科 > 正文

使用EF4将Int32转换为Oracle编号(5)

发布时间:2021-03-18 21:53:10 所属栏目:站长百科 来源:网络整理
导读:我正在使用EF 4(数据库优先,完全由它生成的模型)和一个oracle 10g数据库,我有一个字段的问题. 我的字段在我的数据库中定义为NUMBER(5).在我的模型中,EF将其定义为简短. 我的问题是我有一些大于32,767的值(最多短) 我发现这篇文章:Entity Framework generate

我正在使用EF 4(数据库优先,完全由它生成的模型)和一个oracle 10g数据库,我有一个字段的问题.

我的字段在我的数据库中定义为NUMBER(5).在我的模型中,EF将其定义为简短.
我的问题是我有一些大于32,767的值(最多短)
我发现这篇文章:Entity Framework generates short instead of int.我按照指令运行,我的模型现在包含Int32值.

但我有一个新问题:

Error 2019: Member Mapping specified is not valid. The type 'Edm.Int32[Nullable=True,DefaultValue=]' of member 'XX' in type 'Model.XXX' is not compatible with 'OracleEFProvider.number[Nullable=True,DefaultValue=,Precision=5,Scale=0]' of member 'XX' in type 'Model.Store.XXX'.

此错误始终显示在Visual Studio的“错误列表”选项卡中.然而,构建成功,它的一半工作:

>读取数据库中的值
>写一个值不起作用:99999在-31073转换(见编辑)

是否有解决方案让它在两种方式都有效?

BTW,有没有办法告诉实体使用int32 for oracle INTEGER字段?它默认使用十进制.

编辑

在逐步调试的过程中,我找到了为什么我的值为-31073.我忘记了这句话:

dao.Value = (short)dto.Value;

我的两个值是int,但简称隐式转换是原点.

解决方法

我找到了如何删除错误.

我在xml模式下编辑了edmx文件,在ssdl部分找到了我的字段:

<Property Name="SIT_INSEE" Type="number" Precision="5" />

我删除了Precision =“5”并且警告消失了.

(编辑:济源站长网)

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

    热点阅读