15 49.0138 8.38624 1 0 4000 1 https://www.alexmedina.net 300 true 0

Indicar tipo de dato que quieres en el mapeo de Oracle con Entity Framework

0 Comments

Debido a que Oracle no es el origen de datos nativo de las tecnologías Microsoft (para ello utilizar Sql Server) el trato de los tipos de datos puede llegar a ser un autentico quebradero de cabeza a la hora de mapearlos con Entity Framework.

Pero existe la posibilidad de configurar el tipo de dato origen que quieres en el destino, para ellos tenemos que hacer caso a esta documentación:
Entity Framework 6 Mapping and Customization

Sabemos que Oracle por defecto se mapea de esta forma:

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

El siguiente código no te aparecerá en el appconfig de la aplicación que tiene el edmx por que es el mapeo por defecto, si lo quieres modificar lo tendrás que incluir tu en el nodo oracle.manageddataaccess.client

En nuestro proyecto solo hizo falta retocar los tipos de dato numéricos ya que había problema con valores negativos y los tipo byte al igual que la precisión de los int16:

<oracle.manageddataaccess.client>
    <version number="*">
      <edmMappings>
        <edmNumberMapping>
          <add NETType="int16" MinPrecision="2" MaxPrecision="4" DBType="Number" />
          <add NETType="int32" MinPrecision="5" MaxPrecision="10" DBType="Number" />
          <add NETType="int64" MinPrecision="11" MaxPrecision="19" DBType="Number" />
        </edmNumberMapping>
      </edmMappings>
  </version>
</oracle.manageddataaccess.client>
Previous Post
OracleDependency: controla cambios en la base de datos desde código
Next Post
Instalar, desinstalar y actualizar dependencias de npm

0 Comments

Leave a Reply

SOBRE MÍ

Afortunado de trabajar en lo que me gusta, aprendiendo cada día cosas nuevas y ayudando a crear proyectos.
Conocimientos en diversas tecnologías y experiencia demostrable.
¿Nos ponemos manos a la obra?

Mis Apuntes