Single Connection String mit mehreren Entity Framework-Modellen?

8

Bei der Arbeit haben wir derzeit eine sehr große Webanwendung mit einer Verbindung zu einer riesigen Datenbank. Wir verwenden Entity Framework schon seit einiger Zeit und um die Dinge einfacher zu machen, haben wir die Datenbank in viele Entity-Modelle unterteilt. Das funktioniert gut für uns, aber wir stießen auf ein Problem. Jedes EF-Modell benötigt aufgrund des Metadatenteils der Verbindungszeichenfolge eine eigene Verbindungszeichenfolge. So viele Verbindungszeichenfolgen zu verwalten ist ein Schmerz.

Jetzt habe ich eine Lösung, von der ich denke, dass sie funktionieren wird. Ich werde eine Klasse erstellen, in der die Metadateninformationen als eine Eigenschaft gespeichert werden, die ebenfalls mit der Standardverbindungszeichenfolge in der Datei web.config verknüpft ist. Wenn wir also die Verbindungszeichenfolge "Database.EntityConnectionString" verwenden, wird mir die Entity Connection-Zeichenfolge übergeben, aber wir müssen nur eine einzelne Verbindungszeichenfolge in der Datei web.config verwalten. Wir werden die Klasse weiterhin mit den Metadaten verwalten müssen, aber Modelle ändern sich nicht sehr und wir erstellen sie nicht oft, so dass die Wartung in Ordnung sein sollte. Meine Frage, gibt es einen besseren Weg, um mit diesem Thema umzugehen oder wie würdest du es machen?

Danke!

    
Lukasz 25.06.2010, 13:22
quelle

3 Antworten

7

So habe ich meine Lösung für dieses Problem implementiert:

%Vor%

Ich muss immer noch den Code aufräumen und alles, aber ich denke, das gibt Ihnen eine gute Idee, wie dies implementiert werden kann. Ich wäre immer noch sehr interessiert, wenn es andere und bessere Möglichkeiten gäbe, dies zu tun.

Danke!

    
Lukasz 25.06.2010, 16:49
quelle
1

Hinzufügen von Standardkonstruktionen in Ihrer Klasse

%Vor%     
Muntaqim Umatiya 26.08.2013 16:16
quelle
0

Ich hatte das gleiche Problem. Ich habe es folgendermaßen gelöst:

Ich habe zwei edmx-Dateien erstellt, aber beim Erstellen der zweiten edmx-Datei habe ich die Verbindungszeichenfolge ignoriert, die in der Konfigurationsdatei gespeichert werden soll. Auf diese Weise enthält meine Konfigurationsdatei nur eine Verbindungszeichenfolge. Dann habe ich folgende Zeilen in meiner Verbindungszeichenfolge geändert:

%Vor%

Ersetzen Sie einfach "res: //model1.csdl" durch "res: // * /" und es funktioniert wie ein Zauber.

Sie können diesen Verbindungsnamen im Konstruktor Ihrer dbcontext-Klasse wie folgt angeben:

%Vor%

Hinweis: Ich verwende Entity Framework 5.0.

    
SoftSan 19.02.2013 12:13
quelle