sql >> Database >  >> RDS >> Oracle

Oracle DB naar EF werkt niet correct voor NUMBER (2,0)

De Oracle Database-kolom voor een .Net Int32 moet zijn:NUMBER(9, 0)

Volgens de Conversietabel :

+------------------------------+------------------+-----------------+
|         Oracle Type          | Default EDM Type | Custom EDM Type |
+------------------------------+------------------+-----------------+
| Number(1,0)                  | Int16            | bool            |
| Number(2,0) to Number(3,0)   | Int16            | byte            |
| Number(4,0)                  | Int16            | Int16           |
| Number(5,0)                  | Int16            | Int32           |
| Number(6,0) to Number(9,0)   | Int32            | Int32           |
| Number(10,0)                 | Int32            | Int64           |
| Number(11,0) to Number(18,0) | Int64            | Int64           |
| Number(19,0)                 | Int64            | Decimal         |
+------------------------------+------------------+-----------------+

Bewerken:

Ik heb een manier gevonden om het Number(2,0) . te forceren te vertalen naar een byte in de App.Config voor Database-First-benadering :

<?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)" />

REF:https://docs.oracle.com/database/121 /ODPNT/entityDataTypeMapping.htm#ODPNT8300



  1. Vraag om uitvoer horizontaal weer te geven

  2. Kan MySQL niet starten in CentOS7

  3. Kan MySQL een opgeslagen UTC-tijd converteren naar lokale tijdzone?

  4. Is prestatieverlies bij het vastleggen van wijzigingsgegevens beperkt tot tabellen met CDC-functionaliteit?