Я пытаюсь перейти с EF5 на EF6.
После установки пакета EF6 я обновил необходимые пространства имен и файлы * .tt, но затем, когда я попытался обновить модель из базы данных, обнаружил определенные ошибки отображения типов, которые, как оказалось, были вызваны изменением отображения номеров по умолчанию в EF6.
Я использую провайдера оракула, поэтому в соответствии с документами оракула я добавил настраиваемую конфигурацию отображения.
Теперь мой дизайнер работает нормально, может обновлять модель из базы данных, но когда я выполняю свой код, происходит сбой с той же ошибкой.
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 Docs
https://docs.oracle.com/cd/E63277_01/win.121/e63268/entityDataTypeMapping.htm#ODPNT8303
Конфигурация
<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>
Я занимаюсь этим уже пару дней, но не могу понять, почему пользовательское отображение игнорируется во время выполнения.
supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
Мысли