首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >6: Int32返回为number

6: Int32返回为number
EN

Stack Overflow用户
提问于 2015-05-19 01:25:58
回答 2查看 1.2K关注 0票数 1

各位,

我在EF6中有一个针对Oracle的数据库优先项目,我在模型中指定某些列应该是Int32s。但是,当返回Web有效载荷时,这些属性以数字形式返回,例如58.0、3.0、486.0等.当然,这使得整个JSONDeserializer抛出了很多东西。

我想我应该能够改变EF内的映射,但是现在我是如何逃避的。任何帮助都将不胜感激!

编辑以作澄清:

查看.edmx,属性将应该整数显示为:

代码语言:javascript
复制
<Property Name="OrderId" Type="Int32" />
      <Property Name="StatusId" Type="Int32" Nullable="false" />

在甲骨文方面,我可以确认它们是编号。

关于为什么在这个OP中包含Web :我只是想提供一些上下文来说明请求是如何返回的。我不是使用DTO,而是直接返回模型。

很高兴提供更多的信息(一旦我拿到笔记本电脑)。

N

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-19 11:21:15

好吧,看起来这对其他可能有同样困难的人来说是可行的。

如果使用Oracle的托管数据访问库,请将以下内容添加到app/web.config中:

代码语言:javascript
复制
<oracle.manageddataaccess.client>
    <version number="*">
      <edmMappings>
        <edmMapping dataType="number">
          <add name="bool" precision="1" />
          <add name="byte" precision="2" />
          <add name="int16" precision="5" />
          <add name="int32" precision="38" />
          <add name="int64" precision="38" />
        </edmMapping>
      </edmMappings>
    </version>
  </oracle.manageddataaccess.client>

或者适应你自己的口味。但是,请注意,您可能也必须映射Int64 (即使我不认为我的DB中有任何东西可以量化,有时我也会得到初始化异常)。

您可能需要从.edmx文件中删除模型并重新添加它。

但是这将解决您的问题,您的JSON将不再以小数形式返回。

希望这能帮上忙!(保持优雅,甲骨文.( ;)

票数 1
EN

Stack Overflow用户

发布于 2016-07-21 07:05:29

我试过了上面的解决方案,但对我没有用。我找不到web.config文件,而是用上面的建议修改了App.config文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30315299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档