Después de descargar el EF6 por nuget e intentar ejecutar mi proyecto, devuelve el siguiente error:
No se encontró un proveedor de Entity Framework para el proveedor ADO.NET con el nombre invariable 'System.Data.SqlClient'. Asegúrese de que el proveedor esté registrado en la sección 'entityFramework' del archivo de configuración de la aplicación. Consulte http://go.microsoft.com/fwlink/?LinkId=260882 para obtener más información.
entity-framework
Fernando Vellozo
fuente
fuente
providers
yprovider
, por lo tanto, considere eliminarlo?public BaseStorage(): base ("RaptorDB") {}
, BaseStorage () hereda de DbContext en EF5 todo funcionó perfectamente, no ya en EF6.Respuestas:
Acabo de tener el mismo problema y parece que EntityFramework aunque instalado desde NuGet Package Manager no se instaló correctamente en el proyecto.
Logré solucionarlo ejecutando el siguiente comando en la consola de Package Manager :
fuente
-Pre
opción tell nuget para instalar paquetes de prelanzamiento. No recomiendo usarlo. Tengo un error similar pero la solución fue simplemente instalar EntityFramework en el proyecto host. Lo instalé en una biblioteca de clase pero no en el proyecto principal (web / consola / o lo que sea),EntityFramework.SqlServer.dll
a la carpeta Debug - problema resuelto.Has agregado EF a un proyecto de biblioteca de clases. También debe agregarlo al proyecto que hace referencia a él (su aplicación de consola, sitio web o lo que sea).
fuente
EntityFramework.SqlServer.dll
se esté copiando en el directorio bin. Agregar una referencia fuerte podría romper su arquitectura (si construyó varios niveles, su ensamblaje de ejecución de nivel superior ni siquiera debería saber sobre EF). En su lugar, puede asegurarse de que se copia el proveedor de SQL Server. Ver por ejemplo stackoverflow.com/a/19130718/870604No necesita instalar Entity Framework en su aplicación de consola, solo necesita agregar una referencia al ensamblado EntityFramework.SqlServer.dll. Puede copiar este ensamblaje desde el proyecto Biblioteca de clases que usa Entity Framework a una carpeta LIB y agregarle una referencia.
En resumen:
Espero que ayude.
fuente
También puede ver este mensaje si olvida incluir "EntityFramework.SqlServer.dll".
Parece ser un archivo recién agregado en EF6. Inicialmente no lo había incluido en mi módulo de combinación y me encontré con el problema enumerado aquí.
fuente
En lugar de agregar EntityFramework.SqlServer al proyecto anfitrión, puede garantizar una referencia estática desde su proyecto Modelo / entidad como este
Esto hará que el proceso de compilación incluya el ensamblaje con el proyecto host.
Más información en mi blog http://andersmalmgren.com/2014/08/20/implicit-dependencies-and-copy-local-fails-to-copy/
fuente
Cuando instala Entity Framework 6 a través
Nuget
. EntityFramework.SqlServer a veces falta para otro ejecutable. Simplemente agregue elNuget
paquete a ese proyecto.A veces lo anterior no funciona para el Proyecto de prueba
Para resolver este problema en Test Project, simplemente coloque este Método dentro de Test Project:
Este método nunca se ha llamado, pero como mis observaciones, el compilador eliminará todos los ensamblajes "innecesarios" y sin usar las
EntityFramework.SqlServer
cosas, la prueba falla.fuente
EntityFramework.SqlServer
agrega a su biblioteca de clases, pero si no se usa, no se colocará dentro de la carpeta de salida de su aplicación. Solucioné el problema agregando unExecutionStrategy
, que todavía tenía que hacer, por lo que agregar una línea comoSetExecutionStrategy("System.Data.SqlClient", () => new SqlAzureExecutionStrategy());
dentro de unaDbConfiguration
clase solucionó el problema.Agregar esta función
a la clase de contexto de base de datos en la clase de biblioteca y la DLL faltante EntityFramework.SqlServer.dll se copiará en los lugares correctos.
.
fuente
FixEfProviderServicesProblem
? Intenté en el constructor, sin suerte.Ninguno de estos funcionó para mí. Encontré la solución en otra pregunta de stackoverflow . Lo agregaré aquí para una fácil referencia:
fuente
Recibí el mismo error al usar Entity Framework 6 con SQL Server Compact 4.0. El artículo sobre MSDN para proveedores de Entity Framework para EF6 fue útil. La ejecución de los comandos de proveedor respectivos como paquetes nuget en Package Manager Console podría resolver el problema, ya que también los paquetes NuGet agregarán automáticamente registros al archivo de configuración. Corrí
PM> Install-Package EntityFramework.SqlServerCompact
para resolver el problema.fuente
Hoy me encontré con este problema al trabajar con un conjunto de servicios web, cada uno en proyectos diferentes, y un proyecto separado que contiene pruebas de integración para algunos de esos servicios.
He estado usando esta configuración durante algún tiempo con EF5, sin necesidad de incluir referencias a EF del Proyecto de prueba de integración.
Ahora, después de actualizar a EF6, parece que también necesito incluir una referencia a EF6 en el proyecto de prueba de integración, a pesar de que no se usa allí (más o menos como lo señaló anteriormente el usuario 3004275 ).
Indicaciones que enfrenta el mismo problema:
El tercer punto es lo que me desconcertó por un tiempo, y todavía no estoy seguro de por qué esto es necesario. Agregar una referencia a EF6 en mi proyecto de prueba de integración lo resolvió en cualquier caso ...
fuente
Cuando ocurre el error en los proyectos de prueba, la solución más bonita es decorar la clase de prueba con:
fuente
El proyecto de inicio que hace referencia al proyecto donde se está utilizando Entity Framework necesita los siguientes dos ensamblados en su carpeta bin:
Adición de una
<section>
a la<configSections>
del archivo .config en el proyecto de inicio hace que el primer montaje disponible en ese directorio bin. Puede copiar esto desde el archivo .config de su proyecto Entity Framework:Para que el segundo .dll esté disponible en la carpeta bin, aunque no sea práctico, se puede hacer una copia manual de la carpeta bin del proyecto Entity Framework. Una mejor alternativa es agregar a los eventos posteriores a la compilación del proyecto Entity Framework las siguientes líneas, que automatizarán el proceso:
fuente
Hoy me encuentro con este problema. Tengo una biblioteca de clases de repositorio de datos con el paquete EF63 NuGet y la aplicación de consola para pruebas, que solo hacen referencia al proyecto de biblioteca de clases. Creé un comando posterior a la compilación muy simple, que copia EntityFramework.SqlServer.dll de la carpeta Bin \ Debug de la biblioteca de clases a la carpeta Bin \ Debug de la aplicación de consola y el problema se resolvió. No olvide agregar la sección entityFramework al archivo .config de la aplicación de consola.
fuente
Agregue a continuación a su app.config.
fuente
<configSections>
-<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
Eliminar la carpeta BIN lo hizo por mí
fuente
Debe forzar una referencia estática al ensamblaje EntityFramework.SqlServer.dll , pero en lugar de poner un código ficticio, puede hacerlo de una manera más bella:
Si ya tiene una clase DbConfiguration :
Si no tiene una clase DbConfiguration , debe poner el siguiente código al inicio de la aplicación (antes de usar EF):
fuente
Acabo de reinstalar Entity Framework usando Nuget. Y siga las instrucciones escritas en el siguiente enlace: http://robsneuron.blogspot.in/2013/11/entity-framework-upgrade-to-6.html
Creo que el problema se resolverá.
fuente
Expanda el archivo YourModel.edmx y abra la clase YourModel.Context.cs en YourModel.Context.tt.
Agregué la siguiente línea en la sección de uso y el error fue corregido para mí.
utilizando SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;
Puede que tenga que agregar esta línea al archivo cada vez que el archivo se genera automáticamente.
fuente
También tuve un problema similar. Mi problema se resolvió haciendo lo siguiente:
fuente
parece que nadie mencionó primero verificar si System.Data.SqlClient está instalado en el sistema y si se hace referencia a él.
Resolví mi problema instalando System.Data.SqlClient y agregando un nuevo proveedor en la aplicación.
fuente
Además, asegúrese de que su proyecto de inicio es el proyecto que contiene su dbcontext (o app.config relevante). El mío estaba tratando de iniciar un proyecto de sitio web que no tenía todas las configuraciones necesarias.
fuente
Intenté casi todo lo anterior y nada funcionó.
Sólo cuando me puse los archivos DLL que se hace referencia en el defecto del proyecto
EntityFramework
yEntityFramework.SqlServer
propiedadesCopy Local
aTrue
qué se comience a trabajar!fuente
todo el mundo necesito su atención que dos dll EntityFramework.dll y EntityFramework.SqlServer.dll son DataAccess layer Library y no es lógico usarlos a la vista ni en ninguna otra capa. Resuelve su problema pero no es lógico.
La forma lógica es que el atributo enitiess los elimine y los reemplace con Fluent API. Esta es una solución real
fuente
Tenía una aplicación de consola y una biblioteca de clase. En la biblioteca de clases, creé el Modelo de datos de entidad (haga clic con el botón derecho en Biblioteca de clase> Agregar> Nuevo elemento> Datos> Modelo de datos de entidad ADO.NET 6.0) y coloque la referencia dentro de la aplicación de consola. Entonces, tiene una aplicación de consola que hace referencia a la biblioteca de clases y dentro de la biblioteca de clases tiene el modelo EF. Tuve el mismo error cuando intenté obtener algunos registros de la tabla.
Resolví este problema siguiendo estos pasos:
Eso fue todo lo que tuve que hacer y todo funcionó a la perfección.
Espero que haya ayudado.
fuente
Yo tengo el mismo error. Es extraño que solo suceda cuando use mi dbContext para consultar a cualquiera de mis modelos u obtener su lista como:
Intentamos reinstalar Entity Framework, hacer referencia a él correctamente pero fue en vano.
Afortunadamente, intentamos buscar
ALL
soluciones en Nuget , luego actualizar todo o asegurarnoseverything
sea la misma versión porque notamos que los dos proyectos tienen diferentes versiones de EF en el proyecto web. Y funciona. El error se ha ido.Aquí está la captura de pantalla sobre cómo administrar Nuget para todas las soluciones:
fuente
Simplemente falta una referencia a EntityFramework.SqlServer.dll. Para proyectos de EntityFramework que utilizan SQL Server, los dos archivos que debe consultar son EntityFramework.SqlServer.dll y EntityFramework.dll
fuente
Tuve un problema relacionado al migrar de una base de datos CE a Sql Server en Azure. Solo desperdicié 4 horas tratando de resolver esto. Esperemos que esto pueda salvar a alguien un destino similar. Para mí, tenía una referencia a SqlCE en mi archivo packages.config. Eliminarlo resolvió todo mi problema y me permitió usar migraciones. Yay Microsoft para otra tecnología con problemas de configuración y configuración innecesariamente complejos.
fuente
Tuve el mismo problema, solo copié el archivo de configuración de la aplicación del proyecto que contenía el DBContext en mi proyecto de prueba
fuente
Tuve la misma excepción lanzada. yo incluí
y todo vuelve a funcionar de nuevo ...
fuente
Como el mensaje muestra que necesitamos agregar el proveedor System.Data.SqlClient, es por eso que necesitamos instalar el paquete nuget de EntityFramework que tiene dos dll, pero si estamos desarrollando solo una aplicación de consola, entonces solo necesitamos agregar la referencia de EntityFramework.SqlServer.dll
fuente