将.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)?
发布于 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>
发布于 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>
发布于 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)
https://stackoverflow.com/questions/9095695
复制相似问题