web-dev-qa-db-fra.com

Aucune chaîne de connexion nommée n'a été trouvée dans le fichier de configuration de l'application

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" 
13
user1345260

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.

13
Paolo Costa

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

35
dunwan

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=&quot;data source=MY-PC;initial catalog=DB;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

</connectionStrings>

1
Raishul

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.

1
R3verse

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.

0
kokabi

Copiez et collez la chaîne de connexion dans votre fichier web.config de projet WEBAPI pour résoudre le problème.

0
Praveen Thangaraja

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é ...

0
noelicus