Frage

Ich arbeite an einer Winforms-Anwendung mit LINQ to SQL – und erstelle die App mithilfe einer SQL Express-Instanz auf meiner Workstation.Die endgültige Installation des Projekts erfolgt auf einem ordnungsgemäßen SQL Server 2005.

Die Datenbank hat den gleichen Namen und alle Tabellen sind identisch, aber der Hostname ist unterschiedlich.

Die einzige Möglichkeit, die ich gefunden habe, damit meine App von einem Computer zum nächsten funktioniert, besteht darin, den Code in Visual Studio erneut zu öffnen, alle Objekte, die auf die SQL Express-Instanz verweisen, aus meiner .mdbl zu löschen, das Projekt zu speichern und eine Verbindung herzustellen Ziehen Sie alle Referenzen auf den anderen Server zurück und erstellen Sie die Anwendung erneut für die Veröffentlichung.

Eine Antwort hier schlug vor, dass man einfach die Datei app.config/web.config ändern kann – was für asp.net funktionieren würde, aber dies ist eine Winforms-Anwendung.Was ist der richtige Weg, um LINQ to SQL-Apps dazu zu bringen, eine neue Datenbank zu verwenden, ohne die App in Visual Studio erneut öffnen zu müssen?

War es hilfreich?

Lösung

Wenn ich Ihr Problem richtig verstehe, ändern Sie einfach die Verbindungszeichenfolge der Datenbank in Ihrer app.config / web.config.

Bearbeiten, Nachklärung:Sie haben die Verbindungszeichenfolgen irgendwo gespeichert.Sie befinden sich möglicherweise in der app.config Ihres Servers.Dennoch erhalten Sie sie von irgendwoher und dieser Ort befindet sich möglicherweise in einer app.config.Dann nutze das :)

Andere Tipps

Eine gute Lösung besteht darin, der DBML-Datei selbst eine weitere Verbindung hinzuzufügen.Hierzu gelangen Sie, indem Sie mit der rechten Maustaste auf das Feld der Designoberfläche klicken und Eigenschaften auswählen.Von dort aus können Sie eine weitere Verbindungszeichenfolge hinzufügen.Anstatt alles zu löschen und neu zu verschieben, ändern Sie einfach die Zeichenfolge und kompilieren Sie neu.

Wenn Sie es aber etwas schicker angehen lassen möchten, können Sie das Programm mithilfe dieser praktischen Hilfsfunktion automatisch erkennen lassen, ob es lokal ausgeführt wird oder nicht: Lokal erkennen

Von dort aus können Sie basierend auf den Ergebnissen die entsprechende Verbindungszeichenfolge festlegen.

Eine nützlichere Antwort ...

app.config endet nach der Erstellung als appname.exe.config.

Anstatt Visual Studio zu öffnen und app.config zu ändern, können Sie einfach die Datei appname.exe.config bearbeiten und die App neu starten.

Ich glaube, Sie können die Verbindungsinformationen in einer app.config-Datei speichern und von dort abrufen. Hier ist ein Beitrag darüber, wie man das mit LINQ to SQL macht.Sobald Sie es auf einem Produktionsserver bereitgestellt haben, können Sie einfach das XML bearbeiten, um die Datenquelle zu ändern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top