首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在实体框架中将.NET布尔数据类型映射到oracle number(1,0)时抛出错误

在实体框架中将.NET布尔数据类型映射到oracle number(1,0)时抛出错误
EN

Stack Overflow用户
提问于 2012-02-01 20:19:43
回答 5查看 15.7K关注 0票数 18

将.edmx文件中的.NET布尔数据类型映射到oracle number(1,0)会引发以下错误。

错误2019:指定的成员映射无效。类型“”DBModel.TABLE123“”中成员“”COLUMN123“”的类型“”DBModel.TABLE123,DefaultValue=“”与类型“”DBModel.Store.TABLE123“”中成员“”CHECK_INSTALLATION“”的“”OracleEFProvider.numberNullable=False,DefaultValue=,Precision=1,Scale=0“”不兼容。“

是否可以使用实体框架将Boolean数据类型映射到oracle的number(1,0)?

EN

回答 5

Stack Overflow用户

发布于 2014-05-16 23:34:22

添加一个oracle.dataaccess.client部分对我来说是不够的。以下代码(摘自Deploying and Configuring ODP.NET to work without installation with Entity Framework)确实有效:

<configuration>
  <configSections>
    <section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</configSections>
...
<oracle.dataaccess.client>
  <settings>
    <add name="bool" value="edmmapping number(1,0)" />
  </settings>
</oracle.dataaccess.client>
<oracle.manageddataaccess.client>
  <version number="*">
    <edmMappings>
      <edmMapping dataType="number">
        <add name="bool" precision="1"/>
        <add name="byte" precision="2" />
        <add name="int16" precision="5" />
      </edmMapping>
    </edmMappings>
  </version>
</oracle.manageddataaccess.client>
票数 9
EN

Stack Overflow用户

发布于 2016-10-15 00:46:39

在VS 2015中遇到了这个错误。项目编译时不会出现错误,但错误列表仍然会显示此错误。已将以下部分添加到我的app.config以解决此问题。请注意,edmMapping元素与oracle提供的XSD schema不兼容(因此,如果您的配置文件是打开的,您会收到有关它的警告),但这仍然比显示这些错误要好。

    <oracle.manageddataaccess.client>
    <version number="*">
        <edmMappings>
            <edmNumberMapping>
                <add NETType="bool" MinPrecision="1" MaxPrecision="1" DBType="Number" />
            </edmNumberMapping>
            <edmMapping dataType="number">
                <add name="bool" precision="1"/>
            </edmMapping>
        </edmMappings>
    </version>
</oracle.manageddataaccess.client>
票数 3
EN

Stack Overflow用户

发布于 2013-10-01 21:49:21

下面是一个包含自定义映射的app.config示例,其中NUMBER(1,0)映射到Bool,NUMBER(3,0)映射到Byte,Int16、Int32和Int64的最大精度分别从默认值5、10、19更改为4、9、18:

         <?xml version="1.0" encoding="utf-8"?>
         <configuration>
         <connectionStrings>
         </connectionStrings>
         <oracle.dataaccess.client>
         <settings>
         <add name="bool" value="edmmapping number(1,0)" />
         <add name="byte" value="edmmapping number(3,0)" />
         <add name="int16" value="edmmapping number(4,0)" />
         <add name="int32" value="edmmapping number(9,0)" />
         <add name="int64" value="edmmapping number(18,0)" />
         </settings>
         </oracle.dataaccess.client>
         </configuration>

同样,您可以将Oracle布尔值映射到.net编号(1,0)

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

https://stackoverflow.com/questions/9095695

复制
相关文章

相似问题

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