6

Ich entwickle eine WPF-Anwendung, die für den Datenzugriff auf Entity Framework angewiesen ist. Bei der ersten Installation muss ich eine neue Verbindungszeichenfolge basierend auf der Benutzereingabe erstellen und dann App.Config entsprechend aktualisieren.C# - Entity Framework ConnectionString wird nicht aktualisiert, nachdem App.Config in der Laufzeit geändert wurde

Das Problem ist: Nach Aktualisierung der App.Config-Datei erkennt Entity Framework die Änderung nicht und verwendet die alte Startzeit ConnectionString zum Instanziieren des DbContext.

Wie kann ich die ConnectionString-Einstellung des Entity Framework zur Laufzeit aktualisieren?

+0

Haben Sie eine app.config in die implementierte Anwendung? –

+0

Ja. Executable.exe.config – evolon

+0

Ich hatte dieses Problem. Meine Änderungen in Connectionstring, Datenbankname, wurden aufgrund von edmx nicht übernommen. Ich schließe die Lösung und öffne sie wieder und es funktioniert. – Mohammadreza

Antwort

7

Entity Framework speichert Verbindungszeichenfolge, es gibt keine Methode, um eine Aktualisierung zu erzwingen.

Von this article: Verbindungszeichenfolge in DbContext Konstruktor angegeben wird dann nicht im Cache gespeichert Sie dies als Abhilfe verwenden können:

public class MyContext : DbContext { 
    public MyContext() 
     : base(ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString) 
    { 
    } 
} 
+0

Danke, Sehr nützlicher Link übrigens. Aber basierend auf den oben im Dokument geschriebenen Kommentaren "Manuelle Änderungen an dieser Datei werden überschrieben, wenn der Code neu generiert wird." Werden die Änderungen später nicht verschwinden? – evolon

+0

Wenn Sie Ihre Anwendung neu kompilieren ... Ja, aber es ist nicht etwas, das auf einer bereitgestellten Anwendung passieren wird. –

+1

Stellen Sie sicher, dass Sie dem Namespace "using System.Configuration" hinzufügen. – Scooter