none
Error conexion desde EF6 a Sql Server Version 2016 SP1 RRS feed

  • Pregunta

  • Hola, tengo el siguiente problema:

    estoy desarrollando una  app que corre en windows server 2012 R2, con VS .net 2015, con EF6 y me conecto a una BD Sql server 2016 SP1 nrpo Version: 13.0.4001.0.

    La aplicacion, tiene N capas, entidades, otra repositorio ,negocios, etc.

    el tema, es que me esta apareciendo el siguiente mensaheje de error:

    Excepción no controlada del tipo 'System.InvalidOperationException' en mscorlib.dll
    Información adicional: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.

    Lo que entiendo de esto, es que no se pudo cargar el ensamblado que accesa la base de datos sql server.

    pero, no se porque no lo hace, ya que estoy usando la aproximacion CodeFirst  desde base de datos, y es este procedimiento en que me crea la cadena de conexion, agrega el EF6, etc, de manera automatica


    aca esta el package.config

    <packages>
      <package id="EntityFramework" version="6.1.3" targetFramework="net452" />
    </packages>

    y el app.config ( que lo copie en el proyecto de inicio UI)

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </configSections>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="mssqllocaldb" />
          </parameters>
        </defaultConnectionFactory>
        <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        </providers>
      </entityFramework>
      <connectionStrings>
        <add name="ModelAccuro" connectionString="data source=ZERO-DEV3;initial catalog=CertusAccuro_dev;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
      </connectionStrings>
    </configuration>

    por otra parte, hice una prueba, siguiendo el mismo procedimiento, pero usando una base sql server express, local en mi equipo con windows 10, y funciona sin problemas.

    algo que me llama la atencion, es que cuando agrego el ADO.net entity DataModel, en el archivo app config, me crea el siguiente defaultConnectionFactory

        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="mssqllocaldb" />
          </parameters>
        </defaultConnectionFactory>

    ahora, porque indca localDbConnectionFactory, si es que yo estoy indicandole que obtenga las clases desde el mismo server?.

    Saludos y gracias por las rspuestas

    lunes, 27 de febrero de 2017 13:23

Respuestas

  • bueno.. despues de mucho buscar el porque, al parecer ya encontre la solucion, que no esta muy elegante, pero funciona. 

    les dejo el link desde donde obtuve el como solucionarlo.

    https://vicentezn.wordpress.com/2014/07/27/un-raro-problema-del-entity-framework-6-0/

    saludos y gracias

    lunes, 27 de febrero de 2017 14:16