2017-12-04 5 views
0

Ich habe zwei Verbindungen zu zwei verschiedenen Servern. Ich möchte auf Daten von Datenbanken auf beiden Servern zugreifen. Es scheint unmöglich (oder zumindest kompliziert).LinqPad - Daten zwischen Abfragen teilen

Ich dachte, es könnte einfacher sein, einige Anfragen auf einem Server zu machen, die Ergebnisse im Speicher in einer Variablen zu speichern und dann auf diese Variable in einer anderen Abfrage auf dem anderen Server zuzugreifen.

habe ich versucht, mit statischen Variablen in MyExtensions sowie mit AppDomain.CurrentDomain.SetData("myVariable", results) und AppDomain.CurrentDomain.GetData("myVariable") aber beide funktionieren nicht.

+0

Sind die Datenbankstrukturen auf beiden Servern gleich? Wenn dies der Fall ist, können Sie eine zweite Verbindung mit 'var dc2 = new UserQuery (neue SqlConnection (connectionString)) erstellen;' – sgmoore

+0

Datenbanken befinden sich auf unterschiedlichen Servern (ein Azure, der von einem anderen Provider gehostet wird). –

+0

Wenn die Datenbankstrukturen genau gleich sind, sollte es nicht wichtig sein, auf zwei Servern zu sein. – sgmoore

Antwort

0

Ich hatte das gleiche Problem, aber die Lösung endete viel einfacher als ich erwartet hatte.

Da ich ein Projekt mit den beiden Datacontexts hatte (auf verschiedenen Servern) Ich abfragen wollte, habe ich einen Verweis (F4 in einer Abfrage, dann Zusatz Referencen-> Finden Sie Ihre Ordner bin oder was auch immer) an die DLL von Mein Projekt. Ich habe einen Abschnitt config/connectionstrings zur app.config der Abfrage hinzugefügt, die die Namen der connectionStrings enthielt, nach denen mein Projektkontext mit den korrekten Verbindungsinformationen gesucht hat.

Dies gab mir nicht nur Zugriff auf meinen Datenkontext, sondern auch einen Großteil der Geschäftslogik (zum Beispiel repos/dtos/viewModels/andere Transformationen) von meinem Projekt. Von dort konnte ich alles, was ich brauchte, von DB/Server A holen, meinen bevorzugten Datentyp (normalerweise eine Liste) angeben und dann mit Daten von DB/Server B interagieren, wenn es nötig war.

Hoffe, das hilft!

Verwandte Themen