Пользовательское отображение EDM не используется во время выполнения - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь перейти с 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" /> 

Мысли

...