none
Error al sincronizar base de datos oracle con entity framework RRS feed

  • Pregunta

  • Buenas,

    Al actualizar el modelo de base de datos para que coja los cambios del esquema de la base de datos me muestra este error:

    "Se produjo una excepción de tipo 'System.ArgumentException" al intentar actualizar desde la base de datos. El mensaje de la excepción es: 'No se puede convertir la cadena de conexión en tiempo de ejecución a su equivalente en tiempo de diseño. Las bibliotecas necesarias para que Visual Studio se comunique con la base de datos para tareas de diseño (proveedor DDEX) no están instaladas para el proveedor 'Oracle.ManagedDataAccess.Client'. Cadena de conexión: DATA SOURCE=ooo.ccc.int:1521/orr;PASSWORD=SOCIO;PERSIST SECURITU INFO=true;USER ID=SOCIO'"

    He realizado una conexión a este esquema desde el explorador de servidores y no hay problema.

    Gracias por la ayuda,

    martes, 23 de octubre de 2018 8:56

Respuestas

  • Buenas,

    Por el mensaje, da la sensación de que te falta instalar el proveedor de Entity Framework para Oracle en tu proyecto, añade como paquete nuget Oracle.ManagedDataAccess.Client y vuelve a probar. Si miras la info del paquete, también dice que para sistemas a 32 bit tienes que instalar un componente adicional, esta todo explicado en el enlace. 

    Si tienes dudas de como añadirlo comentanos. 

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.


    martes, 23 de octubre de 2018 9:24
  • Buenas,

    He estado buscando información sobre el tema, y te dejo un enlace con la documentación sobre como usar EF sobre Oracle

    Entity Framework, LINQ and Model-First for the Oracle Database

    Echale un ojo también a este otro enlace sobre como utilizar el data provider:

    Using NuGet to Install and Configure Oracle Data Provider for .NET

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    martes, 23 de octubre de 2018 12:25
  • hola

    Entiendo que tienes un .edmx que quieres actualizar

    Ahora bien, este edmx en que proyecto lo defines?

    en ese proyecto tiene un app.config donde se define el connection string de la forma que el edmx lo requiere?

    recuerda que el edmx usa algo como esto

    <add name="Northwind_Entities"  
             connectionString="metadata=res://*/Northwind.csdl|  
                                        res://*/Northwind.ssdl|  
                                        res://*/Northwind.msl;  
                               provider=System.Data.SqlClient;  
                               provider connection string=  
                                   &quot;Data Source=.\sqlexpress;  
                                         Initial Catalog=Northwind;  
                                         Integrated Security=True;  
                                         MultipleActiveResultSets=True&quot;"  
             providerName="System.Data.EntityClient"/>  

    lo explica en el titulo "Database/Model First with connection string in app.config/web.config file"

    Connection strings and models

    debes validar que lo defines de esa forma en el .config del proyecto donde esta el edmx

    a donde apunto es que no se trata de un conenction string simple, sino que el edmx requiere esos "metadata"

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    martes, 23 de octubre de 2018 13:27

Todas las respuestas

  • Buenas,

    Por el mensaje, da la sensación de que te falta instalar el proveedor de Entity Framework para Oracle en tu proyecto, añade como paquete nuget Oracle.ManagedDataAccess.Client y vuelve a probar. Si miras la info del paquete, también dice que para sistemas a 32 bit tienes que instalar un componente adicional, esta todo explicado en el enlace. 

    Si tienes dudas de como añadirlo comentanos. 

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.


    martes, 23 de octubre de 2018 9:24
  • Oracle.ManafedDataAccess.Client como tal en nuget no lo he encontrado. He instalado Oracle.ManagedDataAcces.entityFramework v18.3.0 teniendo que cambiar el entity framework de mi proyecto de 4.0 a 4.6 para que me dejara instalar, y aún así me sale el mismo error.
    martes, 23 de octubre de 2018 10:01
  • Buenas,

    He estado buscando información sobre el tema, y te dejo un enlace con la documentación sobre como usar EF sobre Oracle

    Entity Framework, LINQ and Model-First for the Oracle Database

    Echale un ojo también a este otro enlace sobre como utilizar el data provider:

    Using NuGet to Install and Configure Oracle Data Provider for .NET

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    martes, 23 de octubre de 2018 12:25
  • hola

    Entiendo que tienes un .edmx que quieres actualizar

    Ahora bien, este edmx en que proyecto lo defines?

    en ese proyecto tiene un app.config donde se define el connection string de la forma que el edmx lo requiere?

    recuerda que el edmx usa algo como esto

    <add name="Northwind_Entities"  
             connectionString="metadata=res://*/Northwind.csdl|  
                                        res://*/Northwind.ssdl|  
                                        res://*/Northwind.msl;  
                               provider=System.Data.SqlClient;  
                               provider connection string=  
                                   &quot;Data Source=.\sqlexpress;  
                                         Initial Catalog=Northwind;  
                                         Integrated Security=True;  
                                         MultipleActiveResultSets=True&quot;"  
             providerName="System.Data.EntityClient"/>  

    lo explica en el titulo "Database/Model First with connection string in app.config/web.config file"

    Connection strings and models

    debes validar que lo defines de esa forma en el .config del proyecto donde esta el edmx

    a donde apunto es que no se trata de un conenction string simple, sino que el edmx requiere esos "metadata"

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    martes, 23 de octubre de 2018 13:27