gpt4 book ai didi

oracle - 使用 EF4 将 Int32 转换为 Oracle number(5)

转载 作者:行者123 更新时间:2023-12-02 11:18:16 25 4
gpt4 key购买 nike

我正在将 EF 4(数据库优先,完全由其生成模型)与 Oracle 10g 数据库结合使用,但我在一个字段上遇到问题。

我的字段在我的数据库中定义为 NUMBER(5)。在我的模型中,EF 将其定义为 short。我的问题是我有一些值大于 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(请参阅编辑)

有没有办法让它双向工作?

顺便说一句,有什么方法可以告诉实体对 oracle INTEGER 字段使用 int32 吗?默认使用十进制。

编辑

在一步步调试的过程中,我发现了为什么我的值为-31073。我忘记了这一行:

dao.Value = (short)dto.Value;

我的两个值都是int,但简而言之,隐式转换就是起源。

最佳答案

我找到了如何消除错误。

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

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

我删除了 Precision="5" 并且警告消失了。

关于oracle - 使用 EF4 将 Int32 转换为 Oracle number(5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13311092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com