3 Stimmen

LINQ2SQL: Wenn ich Änderungen an der DB vornehme, wie kann ich sie in DBML spiegeln?

Ich bin mit LINQ2SQL in meinem aktuellen Projekt. Ich habe eine ziemlich große Anzahl von Tabellen ~30. Wenn ich meine DBML-Datei erstellen, ändere ich einige der Spaltennamen usw. für die Lesbarkeit.

Wenn ich in letzter Zeit eine Änderung an der Tabelle in der zugrundeliegenden Datenbank vorgenommen habe, habe ich die Tabelle einfach gelöscht und in der DBML-Datei neu hinzugefügt, aber das wird langsam mühsam. Wie kann ich alle Änderungen an der Datenbank in der DBML-Datei nachahmen? (z. B. neue Spalte, gelöschte Spalte, neue Standardbeschränkung usw.).

4voto

marc_s Punkte 701497

Linq-to-SQL hat von Haus aus keine Aktualisierungsfunktion - erstaunlich, aber leider wahr.

Ich kenne zwei Hilfsmittel, mit denen man das umgehen kann:

  • PLINQO ist ein Satz von CodeSmith-Codegenerierungsvorlagen, die die DBML-Generierung übernehmen und viele zusätzliche Funktionen bieten (wie die Generierung einer Datei pro DB-Entität) - einschließlich Updates!

  • El Huagati-Werkzeuge Angebot von Updates und Durchsetzung von Namenskonventionen für DBML und Entity Framework

Marc

2voto

Funka Punkte 4250

Ich erwarte nicht, dass dies die richtige Antwort ist, aber ich dachte, ich würde mich trotzdem einmischen.

Mein Ansatz war es, die Drag-and-Drop-Funktion für die Erstellung der anfänglich DBML-Datei. Alle Änderungen, die ich in meiner DB vornehme, werden dann ebenfalls von Hand entweder im Designer oder in der DBML-Datei (als XML) selbst vorgenommen. (Sie können mit der rechten Maustaste auf die DBML-Datei klicken, "Öffnen mit" auswählen und den XML-Editor wählen). Manchmal ist es viel einfacher/schneller, mit der XML-Datei zu arbeiten, als im Designer herumzupfuschen.

Das Löschen und erneute Hinzufügen, wie Sie es getan haben, würde ich nur in Erwägung ziehen, wenn die Änderungen erheblich sind. Für das Hinzufügen einer neuen Spalte würde ich jedoch vorschlagen, direkt mit dem XML der dbml zu arbeiten, das ist wahrscheinlich schneller.

Viel Glück!

0voto

spender Punkte 111351

Willkommen in der Welt des Langweiligen! Wenn ich nichts übersehen habe, machen Sie es richtig.

SubSonic sieht wie eine interessante Alternative aus und verfügt über

Wenn Sie möchten, erstellt es Ihre Datenbank auch im laufenden Betrieb und ändert das Schema, wenn Sie Ihr Objekt ändern.

-1voto

Michael Maddox Punkte 11851

Was die kostenlosen Lösungen angeht, so gibt es einige stumpfe Instrumente, die Sie meist von der Verwendung des O/R-Designers abhalten: SQLMetal y T4-Vorlagen von Damien Guard .

Es gibt mehrere kommerzielle Lösungen, die viel mehr Funktionen bieten.

Die Frage, die Sie sich stellen müssen, lautet: Verwende ich das richtige ORM? LinqToSql hat einige erhebliche Nachteile, die Behandlung von Datenbankänderungen ist nur einer davon.

Verwenden Sie nicht den Visual Studio 2008 LinqToSql O/R Designer

Die Nachteile der Einführung von Linq To Sql

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X