web-dev-qa-db-fra.com

Comment résoudre l'exception de fournisseur Entity Framework

J'ai publié mon projet WCF sur un serveur, j'ai également publié une application MVC sur la même boîte qui consomme les services WCF. 

Lors de la connexion à mon application MVC, cela utilise un service wcf, mais je reçois cette exception sur le navigateur. 

Le type de fournisseur Entity Framework 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer 'enregistré dans le fichier de configuration de l'application pour le fournisseur ADO.NET avec le nom invariant 'System.Data.SqlClient' n'a pas pu être chargé. Assurez-vous que le nom qualifié d'assembly est utilisé et que l'assembly est disponible pour l'application en cours d'exécution.

Il s'agit d'une exception de structure d'entité, mais je suppose que puisque mon projet référence déjà EF dans l'environnement dev, après le déploiement du projet de service, les DLL doivent également contenir la référence EF, mais je ne suis pas certain de la raison de cette erreur. 

Je peux voir ce message parce que j'ai activé le includeExceptionDetailInFaults="True" 

12
ife labolz

@FranciscoGoldenstein en disant! Vous n'avez pas besoin d'installer Entity Framework dans votre application console ou quoi que ce soit, il vous suffit d'ajouter une référence à 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é:

  • Application de bibliothèque de classes:
    • Installer Entity Framework 
    • Écrivez votre code de couche de données 
    • le fichier app.config contient toutes les configurations liées à Entity Framework, à l'exception de la chaîne de connexion. 
  • Créez une application de console, Web ou de bureau:
    • Ajoutez une référence au premier projet. 
    • Ajoutez une référence à EntityFramework.SqlServer.dll. 
    • app.config/web.config a la chaîne de connexion (rappelez-vous que le nom de l'entrée de configuration doit être identique à celui de la classe DbContext. 

c'est un travail pour moi! J'espère que ça aide.

essayez également ce lien Le type de fournisseur Entity Framework ne peut pas être chargé?

15
Nazmul Hasan

Désinstallez Entity Framework et réinstallez-le, cela a fonctionné pour moi.

3
Moji

L'astuce la plus simple pour résoudre ce problème consiste à ajouter la ligne suivante dans l'une des classes de votre projet EF:

public class Blablabla
{
    private static string __hack = typeof(SqlProviderServices).ToString();

    // other class members as they were before.
}

Cela forcera le processus de construction à copier EntityFramework.SqlServer.dll dans le dossier \bin de tout projet comportant des références au projet EF.

Il n'est pas nécessaire d'installer le package de nuget EF ou de faire une référence explicite à EntityFramework.SqlServer.dll dans tout projet en aval. 

2
Tohid

J'ai aussi eu un problème similaire

Mon problème a été résolu en procédant comme suit:

 enter image description here

 enter image description here

1
BehrouzMoslem

Supprimez le dossier bin et nettoyez/reconstruisez votre solution, comme je l'ai suggéré dans ma réponse à une autre question similaire .

0
Ulysses Alves