문제

We are using Entity Framework database-first for our Oracle database.

For some reason Number(5) becomes Int16 - short

Max Number(5) value is 99999
Max Int16 value is 32767

Problem... is there a way to instruct the mapper to translate Number(5) to int32?

도움이 되었습니까?

해결책

Solved it, Added this to the web.config:

<oracle.dataaccess.client>
<settings>
<add name="int16" value="edmmapping number(4,0)" />
<add name="int32" value="edmmapping number(9,0)" />
</settings>
</oracle.dataaccess.client>

Recreated the Model with the *.edmx file and...

Now Number(5) is Int32 instead of Int16 and Number(10) is Int64 instead of Int32

I hope it'll help someone else in the future...

다른 팁

Oracle with EntityFramework for me has always resulted in having a sheet of changes I have to apply to my edmx file after it's generated.

Aside from changing the column's dataType, I'd suggest manually editing the row's type in the edmx file and just remembering this is something you'll have to do everytime you re-generate

For Oracle.ManagedDataAccess.Client, I try this work, and notice the question in top post comment:

<oracle.manageddataaccess.client>
    <version number="*"> 
      <edmMappings>
        <edmNumberMapping>
          <add NETType="int16" MinPrecision="2" MaxPrecision="4" DBType="Number" />
          <add NETType="int32" MinPrecision="5" MaxPrecision="9" DBType="Number" />
          <add NETType="int64" MinPrecision="10" MaxPrecision="19" DBType="Number" />
          <add NETType="bool" MinPrecision="1" MaxPrecision="1" DBType="Number" />
        </edmNumberMapping>
      </edmMappings>
    </version>
  </oracle.manageddataaccess.client>

`

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top