J'utilise EF et ai généré .EDMX à partir de cela, mais je voulais seulement qu'il soit utilisé pour la génération automatisée de fichiers de classe.
J'ai ensuite utilisé les fichiers de classe pour créer un modèle d'entité, puis un contexte de base de données, puis un référentiel. J'appelle un WebApi (qui fait partie d'un projet séparé mais de la même solution) pour accéder au référentiel des données GET. Pendant que je lance WebApi, je reçois l’erreur,
{"Aucune chaîne de connexion nommée 'DBEntities' n'a pu être trouvée dans le fichier de configuration de l'application."}
Mais dans mon DAL, j'ai un WebConfig et qui a l'entrée suivante, donc je ne sais pas trop ce qui ne va pas,
add name="DBEntities" connectionString="metadata=res://*/Models.DBModel.csdl|res://*/Models.DBModel.ssdl|res://*/Models.DBModel.msl;provider=System.Data.SqlClient;provider connection string="data source=MY-PC;initial catalog=DB;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient"
Vous dites "dans mon DAL, j'ai un webConfig". J'imagine que la chaîne de connexion se trouve dans le fichier de configuration d'une bibliothèque de classes référencée, mais pas dans le fichier de configuration principal que vous avez dans votre projet d'entrée (projet Web api, j'imagine en regardant les balises).
Si tel est le cas, copiez simplement la chaîne de connexion dans le fichier de configuration du projet d'entrée.
Dans le fichier DBContext, supprimez
public RaficaDB()
: base("name=DefaultConnection"){}
à
public RaficaDB()
: base("DefaultConnection"){}
EF 4.3, EF 5 et EF 6 n'aiment pas la chaîne de connexion appelée name = xxxxx
Réponse trouvée ici -> Aucune chaîne de connexion nommée 'MyApplicationEntities' n'a été trouvée dans le fichier de configuration de l'application
Insérez la section suivante dans la section de configuration du fichier .config du même projet que votre fichier .edmx.
Vous pouvez également créer différentes chaînes de connexion pour différents environnements dans le fichier .config du projet principal et transmettre l'une des chaînes de connexion en tant que paramètre du constructeur du DBContext.
<connectionStrings>
<add name="DBEntities" connectionString="metadata=res://*/Models.DBModel.csdl|res://*/Models.DBModel.ssdl|res://*/Models.DBModel.msl;provider=System.Data.SqlClient;provider connection string="data source=MY-PC;initial catalog=DB;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
J'ai trouvé que cela fonctionnait:
1) Vérifiez si vous avez plusieurs fichiers "App.config" . 2) Vérifiez si le nom que vous utilisez est erroné par rapport à la chaîne de connexion à utiliser . 3) Enregistrez le projet et exécutez le programme
Cela devrait fonctionner maintenant.
La solution la plus simple:
Supprimez le fichier edmx actuel et la chaîne de connexion associée dans app.config et ajoutez à nouveau un élément Edmx avec le même nom que le précédent.
cela a fonctionné pour moi.
Copiez et collez la chaîne de connexion dans votre fichier web.config de projet WEBAPI pour résoudre le problème.
C'est idiot, mais j'ai eu cette erreur qui a été corrigée par un Rebuild All
!!
Pourrait aussi bien l'avoir éteint et rallumé ...