Après avoir téléchargé l'EF6 par nuget et essayé d'exécuter mon projet, il renvoie l'erreur suivante:
Aucun fournisseur Entity Framework trouvé pour le fournisseur ADO.NET avec le nom invariant «System.Data.SqlClient». Assurez-vous que le fournisseur est enregistré dans la section «entityFramework» du fichier de configuration de l'application. Voir http://go.microsoft.com/fwlink/?LinkId=260882 pour plus d'informations.
entity-framework
Fernando Vellozo
la source
la source
providers
etprovider
, alors pensez à le supprimer?public BaseStorage(): base ("RaptorDB") {}
,, BaseStorage () hérite de DbContext dans EF5 tout fonctionnait parfaitement, pas déjà dans EF6.Réponses:
Je viens de rencontrer le même problème et il semble que EntityFramework bien qu'installé à partir de NuGet Package Manager n'était pas correctement installé dans le projet.
J'ai réussi à le réparer en exécutant la commande suivante sur la console du gestionnaire de packages :
la source
-Pre
option, indiquez à nuget d'installer les packages préliminaires. Je ne recommande pas de l'utiliser. J'ai une erreur similaire mais la solution était d'installer simplement EntityFramework dans le projet hôte. Je l'ai installé dans une bibliothèque de classe mais pas dans le projet principal (web / console / ou autre),EntityFramework.SqlServer.dll
au dossier Debug - problème résolu.Vous avez ajouté EF à un projet de bibliothèque de classes. Vous devez également l'ajouter au projet qui le référence (votre application console, votre site Web ou autre).
la source
EntityFramework.SqlServer.dll
est copié dans le répertoire bin. L'ajout d'une référence forte peut casser votre architecture (si vous avez créé plusieurs niveaux, votre assembly d'exécution de niveau supérieur ne devrait même pas connaître EF). Au lieu de cela, vous pouvez vous assurer que le fournisseur SQL Server est copié. Voir par exemple stackoverflow.com/a/19130718/870604Vous n'avez pas besoin d'installer Entity Framework dans votre application console, il vous suffit d'ajouter une référence à l'assembly EntityFramework.SqlServer.dll. Vous pouvez copier cet assembly à partir du projet de bibliothèque de classes qui utilise Entity Framework dans un dossier LIB et y ajouter une référence.
En résumé:
J'espère que ça aide.
la source
Vous pouvez également voir ce message si vous oubliez d' inclure "EntityFramework.SqlServer.dll".
Il semble s'agir d'un nouveau fichier ajouté dans EF6. Au départ, je ne l'avais pas inclus dans mon module de fusion et j'ai rencontré le problème répertorié ici.
la source
Au lieu d'ajouter EntityFramework.SqlServer au projet hôte, vous pouvez lui garantir une référence statique à partir de votre projet Model / entity comme celui-ci
Cela fera que le processus de construction inclura l'assembly avec le projet hôte.
Plus d'infos sur mon blog http://andersmalmgren.com/2014/08/20/implicit-dependencies-and-copy-local-fails-to-copy/
la source
Lorsque vous installez Entity Framework 6 à
Nuget
. EntityFramework.SqlServer manque parfois pour un autre exécutable. Ajoutez simplement leNuget
package à ce projet.Parfois, ci-dessus ne fonctionne pas pour le projet de test
Pour résoudre ce problème dans Test Project, placez simplement cette méthode dans Test Project:
Cette méthode n'a jamais été appelée, mais comme mes observations, le compilateur supprimera tous les assemblages "inutiles" et sans utiliser les
EntityFramework.SqlServer
éléments, le test échoue.la source
EntityFramework.SqlServer
est ajouté à votre bibliothèque de classes, mais s'il n'est pas utilisé, il ne sera pas placé dans le dossier de sortie de votre application. J'ai résolu le problème en ajoutant unExecutionStrategy
, ce que je devais encore faire, donc l'ajout d'une ligne commeSetExecutionStrategy("System.Data.SqlClient", () => new SqlAzureExecutionStrategy());
dans uneDbConfiguration
classe a résolu le problème.Ajoutez cette fonction
à la classe de contexte de base de données dans la classe de bibliothèque et la DLL manquante EntityFramework.SqlServer.dll sera copiée aux emplacements appropriés.
.
la source
FixEfProviderServicesProblem
j'ai essayé dans le constructeur, sans succès.Rien de tout cela n'a fonctionné pour moi. J'ai trouvé la solution dans une autre question de stackoverflow . Je vais l'ajouter ici pour référence facile:
la source
J'ai eu la même erreur lors de l'utilisation d'Entity Framework 6 avec SQL Server Compact 4.0. L'article sur MSDN pour les fournisseurs Entity Framework pour EF6 a été utile. L'exécution des commandes de fournisseur respectives en tant que packages de nuget dans la console du gestionnaire de packages peut résoudre le problème, car les packages NuGet ajouteront automatiquement des enregistrements au fichier de configuration. J'ai couru
PM> Install-Package EntityFramework.SqlServerCompact
pour résoudre le problème.la source
Ran dans ce problème aujourd'hui lorsque vous travaillez avec un ensemble de services Web, chacun dans des projets différents, et un projet distinct contenant des tests d'intégration pour certains de ces services.
J'utilise cette configuration depuis un certain temps avec EF5, sans avoir besoin d'inclure des références à EF à partir du projet de test d'intégration.
Maintenant, après la mise à niveau vers EF6, il semble que je doive également inclure une référence à EF6 dans le projet de test d'intégration, même s'il n'y est pas utilisé (à peu près comme indiqué ci-dessus par user3004275 ).
Les indications que vous rencontrez le même problème:
Le troisième point est ce qui m'a ébranlé pendant un certain temps, et je ne sais toujours pas pourquoi cela est nécessaire. L'ajout d'une référence à EF6 dans mon projet de test d'intégration l'a résolu dans tous les cas ...
la source
Lorsque l'erreur se produit dans les projets de test, la meilleure solution consiste à décorer la classe de test avec:
la source
Le projet de démarrage qui fait référence au projet dans lequel Entity Framework est utilisé a besoin des deux assemblys suivants dans son dossier bin:
L'ajout d'un
<section>
au<configSections>
fichier .config sur le projet de démarrage rend le premier assembly disponible dans ce répertoire bin. Vous pouvez le copier à partir du fichier .config de votre projet Entity Framework:Pour rendre le deuxième fichier .dll disponible dans le dossier bin, bien que cela ne soit pas pratique, une copie manuelle du dossier bin du projet Entity Framework peut être effectuée. Une meilleure alternative consiste à ajouter aux événements post-génération du projet Entity Framework les lignes suivantes, qui automatiseront le processus:
la source
Je viens de rencontrer ce problème aujourd'hui. J'ai une bibliothèque de classes de référentiel de données avec le package EF63 NuGet et une application console pour les tests, qui ne font référence qu'au projet de bibliothèque de classes. J'ai créé une commande post-construction très simple, qui copie EntityFramework.SqlServer.dll du dossier Bin \ Debug de la bibliothèque de classes dans le dossier Bin \ Debug de l'application console et le problème a été résolu. N'oubliez pas d'ajouter la section entityFramework au fichier .config de l'application console.
la source
Ajoutez ci-dessous à votre app.config.
la source
<configSections>
-<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
La suppression du dossier BIN l'a fait pour moi
la source
Vous devez forcer une référence statique à l' assembly EntityFramework.SqlServer.dll , mais au lieu de mettre un code factice, vous pouvez le faire d'une manière plus belle:
Si vous avez déjà une classe DbConfiguration :
Si vous n'avez pas de classe DbConfiguration , vous devez mettre le code suivant au démarrage de l'application (avant d'utiliser EF):
la source
Je viens de réinstaller Entity Framework à l'aide de Nuget. Et suivez les instructions écrites sur le lien ci-dessous: http://robsneuron.blogspot.in/2013/11/entity-framework-upgrade-to-6.html
Je pense que le problème sera résolu.
la source
Développez le fichier YourModel.edmx et ouvrez la classe YourModel.Context.cs sous YourModel.Context.tt.
J'ai ajouté la ligne suivante dans la section using et l'erreur a été corrigée pour moi.
using SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;
Vous devrez peut-être ajouter cette ligne au fichier chaque fois que le fichier est généré automatiquement.
la source
J'ai également rencontré un problème similaire. Mon problème a été résolu en procédant comme suit:
la source
il semble que personne n'ait mentionné en premier lieu si System.Data.SqlClient est installé dans le système et si une référence y est faite.
j'ai résolu mon problème en installant System.Data.SqlClient et en ajoutant un nouveau fournisseur dans app.Config
la source
Assurez-vous également que votre projet de démarrage est le projet qui contient votre dbcontext (ou app.config pertinent). Le mien essayait de démarrer un projet de site Web qui n'avait pas tous les paramètres de configuration nécessaires.
la source
J'ai essayé presque tout ce qui précède et rien n'a fonctionné.
Seulement quand je mets les DLL référencés dans le projet par défaut
EntityFramework
etEntityFramework.SqlServer
propriétésCopy Local
àTrue
at - il commencé à travailler!la source
tout le monde, j'ai besoin de votre attention que deux dll EntityFramework.dll et EntityFramework.SqlServer.dll sont la bibliothèque de couches DataAccess Et il n'est pas logique de les utiliser en vue ou tout autre layer.it résout votre problème mais ce n'est pas logique.
la manière logique est que l'attribut enitiess les supprime et les remplace par Fluent API. c'est la vraie solution
la source
J'avais une application console et une bibliothèque de classes. Dans la bibliothèque de classes, j'ai créé Entity Data Model (cliquez avec le bouton droit de la souris sur Class Library> Ajouter> Nouvel élément> Données> ADO.NET Entity Data Model 6.0) et j'ai mis la référence dans l'application console. Donc, vous avez une application console qui fait référence à la bibliothèque de classes et à l'intérieur de la bibliothèque de classes, vous avez un modèle EF. J'ai eu la même erreur lorsque j'ai essayé d'obtenir des enregistrements de la table.
J'ai résolu ce problème en suivant ces étapes:
C'est tout ce que j'avais à faire et tout fonctionnait parfaitement.
J'espère que cela a aidé.
la source
J'ai la même erreur. C'est bizarre que cela ne se produise que lorsque j'utilise mon dbContext pour interroger l'un de mes modèles ou obtenir sa liste comme:
Nous avons essayé de réinstaller Entity Framework, de le référencer correctement mais en vain.
Heureusement, nous avons essayé de vérifier les
ALL
solutions du Nuget , puis de tout mettre à jour ou de nous assurereverything
s'agit de la même version car nous avons remarqué que les deux projets ont des versions EF différentes sur le projet Web. Et il fonctionne. L'erreur a disparu.Voici la capture d'écran sur la gestion de Nuget pour toutes les solutions:
la source
Il vous manque juste une référence à EntityFramework.SqlServer.dll. Pour les projets EntityFramework utilisant SQL Server, les deux fichiers que vous devez référencer sont EntityFramework.SqlServer.dll et EntityFramework.dll
la source
J'ai rencontré un problème lié lors de la migration d'une base de données CE vers Sql Server sur Azure. Je viens de perdre 4 heures à essayer de résoudre ce problème. Espérons que cela puisse sauver quelqu'un du même sort. Pour moi, j'avais une référence à SqlCE dans mon fichier packages.config. Le supprimer a résolu tout mon problème et m'a permis d'utiliser les migrations. Oui Microsoft pour une autre technologie avec des problèmes de configuration et de configuration inutilement complexes.
la source
J'ai eu le même problème, je viens de copier le fichier App Config du projet qui contenait le DBContext dans mon projet de test
la source
J'ai eu l'exception identique levée. J'ai inclus
et tout recommence à fonctionner ..
la source
Comme le message montre que nous devons ajouter le fournisseur System.Data.SqlClient, c'est pourquoi nous devons installer le package nuget d'EntityFramework qui a deux DLL, mais si nous développons uniquement une application console, nous devons simplement ajouter une référence à EntityFramework.SqlServer.dll
la source