Mit LINQ zu SQL, wo ist die Datenbank Verbindungsinformationen gespeichert?mit linq to sql, wo sind die Datenbankverbindungsinformationen gespeichert?
Wie kann ich die Datenbank pro Abfrage auf eine andere Datenbank überschreiben?
Mit LINQ zu SQL, wo ist die Datenbank Verbindungsinformationen gespeichert?mit linq to sql, wo sind die Datenbankverbindungsinformationen gespeichert?
Wie kann ich die Datenbank pro Abfrage auf eine andere Datenbank überschreiben?
Die Datenbank connection for linq befindet sich in den Dateien web.config oder application.config.
Sie können es nicht pro Abfrage tun; aber du kannst pro-daten-kontext haben. Übergeben Sie einfach in eine andere Verbindung oder verbindungs Zeichenfolge an den Konstruktor:
string connectionStringA = ..., connectionStringB = ...
using(var ctxA = new FooContext(connectionStringA)) {...}
...
using(var ctxB = new FooContext(connectionStringB)) {...}
using(SqlConnection conn = ...)
using(var ctxC = new FooContext(conn)) {...}
Sie es auf die Instanz DataContext
passieren.
Mit einer generierten DataContext-Unterklasse verwendet der Standardkonstruktor das Projekt .Settings
und damit die Datei .config
.
Wie Aleemb sagte, wird die Datenbankinformation in den Konfigurationsdateien gespeichert. Überprüfen Sie den im Projekt, in dem Sie Ihre dbml-Map erstellt haben.
Das gesagt - der DatabaseContext hat einen Konstruktor, der die Verbindungszeichenfolge als Parameter verwendet. Ich bin mir jedoch nicht sicher, ob es eine gute Möglichkeit gibt, diese pro Abfrage zu überschreiben, ohne ein neues DatabaseContext-Objekt zu erstellen. Dies könnte in der Zukunft zu Problemen führen, wenn Sie Entitäten aus zwei verschiedenen DatabaseContext-Objekten erstellen.