miércoles, 4 de julio de 2012

Value was either too large or too small for an Int32 Entity Framework Oracle


El tipico problema de System.OverflowException.

Causa:

Esto puede pasar cuando tienen un campo Number 10 por ejemplo y entity framework cree que es int32


Query:



Tabla:

Entity Framework:




Posibles errores:

Value was either too large or too small for an Int32
Valor era demasiado grande o demasiado pequeño para Int32

O simplemente No llena el grid aun que tenga datos:



Solución:

Agregar un oracle.dataaccess.client en web config o app config, abajo de connection string.

<configuration>
  <configSections></configSections>
  <connectionStrings>
    <add name="Entities" &lt;connectionString="blabla" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <oracle.dataaccess.client>
    <settings>
      <add name="bool" value="edmmapping number(1,0)" />
      <add name="int16" value="edmmapping number(4,0)"/>
      <!-- max NUMBER lenth for int16. number(5,0) will be int32 -->      
      <add name="int32" value="edmmapping number(9,0)"/>
      <!-- max NUMBER lenth for int32. number(10,0) will be long -->
    </settings>
  </oracle.dataaccess.client>
</configuration>



Con esto solucionamos el problema, basta con actualizar el contexto y tendremos el problema solucionado.




Otras Paginas de Soporte:
https://forums.oracle.com/forums/thread.jspa?threadID=2331405&tstart=10

1 comentario:

WilO Frias dijo...

No entiendo esa idea, podría esplicarme?? Osea cual es en realidad la funcionalidad. Gracias.