Wie soll ich eine Entity Framework-Verbindungszeichenfolge bearbeiten?


115

Ich musste kürzlich meine Datei app.config bearbeiten, um die Verbindungszeichenfolge für ein Entity Framework-Datenmodell zu ändern (.edmx Datei) . Aber ich würde gerne wissen: Gibt es eine Möglichkeit, die EF-Verbindungszeichenfolge mit dem Designer zu bearbeiten?

Die ursprüngliche Verbindungszeichenfolge wird vom Assistenten für Entitätsdatenmodelle automatisch generiert. Die Verbindungszeichenfolge kann dann nicht geändert werden - sie bleibt im Eigenschaftenfenster des .edmx-Designers deaktiviert. Ich möchte es vermeiden, XML manuell zu bearbeiten, wenn ich kann (in app.config). Daher habe ich mich gefragt, ob es eine Möglichkeit gibt, zum ursprünglichen Assistentenbildschirm zurückzukehren, um Änderungen an der Verbindungszeichenfolge vorzunehmen und das Tool die Datei app.config bearbeiten zu lassen für mich.

Antworten:


190

Wenn Sie die Verbindungszeichenfolge aus der app.configDatei entfernen , werden Sie durch erneutes Ausführen des Assistenten für Entitätsdatenmodelle zum Erstellen einer neuen Verbindung geführt.


17
Ausgezeichnet. Dies ist genau die Antwort, nach der ich gesucht habe. Um sicher zu gehen, habe ich die vorhandene Zeichenfolge auskommentiert (anstatt sie zu löschen), die Änderungen an app.config gespeichert, mit der rechten Maustaste auf den Designer geklickt und Modell aus Datenbank aktualisieren ausgewählt. Der Assistent lässt mich dann die vertraulichen Informationen (uid & pwd) in die Verbindungszeichenfolge aufnehmen. Vielen Dank!
DeveloperDan

5
Wenn Sie das Modell zuerst ausführen, klicken Sie mit der rechten Maustaste auf den Designer und klicken Sie stattdessen auf "Datenbank aus Modell generieren"
Carl Onager,

2
Dies funktionierte auch für mich, außer dass ich die App.config-Datei aktualisieren und dann VS.NET 2012 neu starten musste. Es wurde nicht festgestellt, dass sich die App.config-Datei geändert hat.
Garry English

2
Ich musste explizit save in der Datei app.config aufrufen, damit der Designer erkennt, dass die Verbindungszeichenfolge gelöscht wurde.
Rossco

1
Eine Alternative zum Neustart von VS besteht darin, 1. die Verbindungszeichenfolge in app.config auskommentieren, 2. das Projekt, das die .edmx-Datei enthält, neu zu erstellen, 3. mit der rechten Maustaste auf die .edmx-Entwurfsoberfläche zu klicken und das Modell aus der Datenbank aktualisieren ..., das angezeigt werden soll Starten Sie den Verbindungszeichenfolgen-Assistenten.
RIanGillis

18

Nein, Sie können die Verbindungszeichenfolge im Designer nicht bearbeiten. Die Verbindungszeichenfolge ist nicht Teil der EDMX-Datei. Sie ist nur ein referenzierter Wert aus der Konfigurationsdatei und wahrscheinlich deshalb nur im Eigenschaftenfenster schreibgeschützt.

Das Ändern der Konfigurationsdatei ist eine häufige Aufgabe, da Sie manchmal Änderungen vornehmen möchten, ohne die Anwendung neu zu erstellen. Aus diesem Grund sind Konfigurationsdateien vorhanden.


+1, um daran zu erinnern: Wenn sie es in eine Konfigurationsdatei einfügen, bedeutet dies, dass Sie möchten, dass Sie es ändern können. Ich war hauptsächlich besorgt über die Tatsache, dass meine Änderungen überschrieben werden könnten
tobiak777

Sie sollten die Verbindungszeichenfolge in der App-Konfiguration des Projekts ändern, zu dem edmx gehört. Nicht die Konfiguration der Anwendung der obersten Ebene (die beim Ausführen verwendet wird). o_0
akava

9

Normalerweise definieren Sie Ihre Verbindungszeichenfolgen in Web.config. Nach dem Generieren des edmx wird die Verbindungszeichenfolge in der App.Config gespeichert. Wenn Sie die Verbindungszeichenfolge ändern möchten, gehen Sie zur app.config und entfernen Sie alle Verbindungszeichenfolgen. Gehen Sie nun in der edmx der rechten Maustaste auf die Designer - Oberfläche, wählen Sie Update - Modell aus der Datenbank , wählen Sie die Verbindungszeichenfolge aus der Dropdown - Liste Klicken nächsten , Hinzufügen oder Aktualisieren (wählen Sie, was Sie wollen) und zu beenden.

Im Ausgabefenster wird so etwas angezeigt:

Generierte Modelldatei: UpostDataModel.edmx. Das Laden von Metadaten aus der Datenbank dauerte 00: 00: 00.4258157. Das Generieren des Modells dauerte 00: 00: 01.5623765. Die Verbindungszeichenfolge wurde zur App.Config-Datei hinzugefügt.


Ich habe ein ähnliches Problem, aber wenn ich die Verbindungszeichenfolge auskommentiere, das Modell aktualisiere, eine neue Verbindungszeichenfolge auswähle, wird meine context.cs-Klasse innerhalb des Modells geleert. Sie sind sich nicht sicher, warum dies so ist, es sei denn, die Kontextklasse kann nicht generiert werden?
Bitshift

1
Das sollte es nicht tun. Möglicherweise ist Ihr T4-Template-Tool beschädigt.
DanKodi

Ich stimme zu, es sollte nicht. Ich habe jedoch die Anzahl der Male verloren, bei denen ich mehr als ein paar nicht triviale Änderungen am zugrunde liegenden Schema vorgenommen habe, die ich schließlich einfach wegblasen und ein neues erstellen musste. Vielleicht hilft es mit EF7 und dem Entfernen der edmx-Datei. So oder so, das habe ich auch dieses Mal getan, habe einfach alles im Modell hervorgehoben, auf Löschen
geklickt

2

Öffnen Sie die EDMX-Datei in einem beliebigen Texteditor, ändern Sie das Schema = " Ihr erforderliches Schema " und öffnen Sie auch die Datei app.config / web.config . Ändern Sie die Benutzer-ID und das Kennwort in der Verbindungszeichenfolge . du bist fertig.


Ja, das hat es geschafft.
Ggderas

1

Befolgen Sie die nächsten Schritte:

  1. Öffnen Sie die Datei app.config und kommentieren Sie die Verbindungszeichenfolge (Datei speichern).
  2. Öffnen Sie den edmx (gehen Sie zu Eigenschaften, die Verbindungszeichenfolge sollte leer sein) und schließen Sie die edmx-Datei erneut
  3. Öffnen Sie die Datei app.config und kommentieren Sie die Verbindungszeichenfolge aus (Datei speichern).
  4. Öffnen Sie den edmx, gehen Sie zu Eigenschaften, Sie sollten die Verbindungszeichenfolge aktualisiert sehen !!
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.