Ich verwende EF und erzeugte .EDMX daraus, wollte es aber nur für die automatisierte Erzeugung von Klassendateien verwenden.
Ich habe dann mit den Klassendateien ein Entitätsmodell erstellt und dann einen DB-Kontext und dann das Repository erstellt. Ich rufe ein WebApi (das sich in einem separaten Projekt befindet, aber dieselbe Lösung hat) an, um auf das Repository zuzugreifen, um GET-Daten zu erhalten. Beim Ausführen des WebApi erhalte ich die Fehlermeldung,
{"In der Konfigurationsdatei der Anwendung wurde keine Verbindungszeichenfolge mit dem Namen 'DBEntities' gefunden."}
Aber in meiner DAL habe ich eine webConfig und diese hat den folgenden Eintrag. Ich bin mir nicht ganz sicher, was schief gelaufen ist.
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"
Sie sagen "in meiner DAL habe ich eine webConfig". Die Verbindungszeichenfolge befindet sich zwar in der Konfigurationsdatei einer referenzierten Klassenbibliothek, nicht jedoch in der Hauptkonfigurationsdatei, die Sie in Ihrem Eintragsprojekt haben (ein Web-API-Projekt, ich schätze, wenn Sie die Tags betrachten).
Wenn ja, kopieren Sie einfach die Verbindungszeichenfolge in die Konfigurationsdatei des Eintragsprojekts.
Entfernen Sie in der DBContext-Datei
public RaficaDB()
: base("name=DefaultConnection"){}
zu
public RaficaDB()
: base("DefaultConnection"){}
EF 4.3, EF 5 und EF 6 mögen nicht, dass die Verbindungszeichenfolge name = xxxxx genannt wird
Antwort hier gefunden -> In der Konfigurationsdatei der Anwendung konnte keine Verbindungszeichenfolge mit dem Namen 'MyApplicationEntities' gefunden werden.
Fügen Sie im Konfigurationsabschnitt der .config-Datei des Projekts, in dem sich Ihre .edmx-Datei befindet, folgenden Abschnitt ein.
Sie können auch eine andere Verbindungszeichenfolge für eine andere Umgebung in der .config-Datei des Hauptprojekts erstellen und eine beliebige Verbindungszeichenfolge als Parameter des Konstruktors des DBContext übergeben.
<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>
Ich habe festgestellt, dass dies funktioniert hat:
1) Prüfen Sie, ob Sie mehrere "App.config" -Dateien haben . 2) Prüfen Sie, ob der Name der Verbindungszeichenfolge falsch ist . 3) Speichern Sie das Projekt und führen Sie das Programm aus
Es sollte jetzt klappen.
Die einfachste Lösung:
Entfernen Sie die aktuelle edmx-Datei und die zugehörige Verbindungszeichenfolge in app.config und fügen Sie das Edmx-Element mit demselben Namen wie zuvor wieder hinzu.
das hat für mich funktioniert.
Kopieren Sie den Verbindungsstring und fügen Sie ihn in Ihre WEBAPI-Projektdatei web.config ein, um das Problem zu beheben.
Es ist dumm, aber ich hatte diesen Fehler, der durch einen Rebuild All
behoben wurde !!
Hätte es auch ausschalten und wieder einschalten können ....