我正在尝试从EF5迁移到EF6。 安装EF6软件包后,我更新了必需的名称空间和* .tt文件,但是当我尝试从数据库更新模型时,遇到了某些类型映射错误,事实证明这是由于EF6中默认数字映射的更改所致。 我使用的是oracle提供程序,因此根据oracle文档,我添加了自定义映射配置。 现在,我的设计器工作正常,能够从数据库更新模型,但是当我执行代码时,它会失败,并出现相同的错误。
chrome.AddUserProfilePreference("safebrowsing.enabled", false);
Oracle文档 https://docs.oracle.com/cd/E63277_01/win.121/e63268/entityDataTypeMapping.htm#ODPNT8303
配置
error 2019: Member Mapping specified is not valid. The type 'Edm.Int16[Nullable=True,DefaultValue=]' of member <PROPERTY> in type 'Model.<ENTITY>' is not compatible with 'OracleEFProvider.number[Nullable=True,DefaultValue=,Precision=3,Scale=0]' of member <PROPERTY> in type Model.Store.<ENTITY>
我也尝试了以下配置
<oracle.manageddataaccess.client>
<version number="*">
<edmMappings>
<edmNumberMapping>
<add NETType="int16" MinPrecision="1" MaxPrecision="5" DBType="Number" />
<add NETType="int32" MinPrecision="6" MaxPrecision="10" DBType="Number" />
<add NETType="int64" MinPrecision="11" MaxPrecision="19" DBType="Number" />
</edmNumberMapping>
</version>
</oracle.manageddataaccess.client>
我已经待了几天,但无法弄清楚为什么在运行时忽略自定义映射。
<oracle.manageddataaccess.client>
<version number="*">
<edmMappings>
<edmMapping dataType="number">
<add precision="1" name="int16" />
<add precision="3" name="int16" />
<add precision="5" name="int16" />
<add precision="10" name="int32" />
<add precision="19" name="int64" />
</edmMapping>
</edmMappings>
</version></oracle.manageddataaccess.client>
有想法吗?