EF Datenbank Update Skripte generieren


Es ist zwar leicht mit Hilfe des Entity Frameworks neue Anwendungen zu schreiben, aber leider wird von Haus aus nur das Generieren von SQL Statements unterstützt die, die Datenbank neu erstellen und somit nicht als Updateskripte genutzt werden können. Zum Glück gibt es dafür ein Tool, das “Entity Designer Database Generation Power Pack”, welches man unter

http://visualstudiogallery.msdn.microsoft.com/df3541c3-d833-4b65-b942-989e7ec74c87/view/Reviews/

herunterladen kann. Leider gibt es hier nur selten Updates und das Tool läuft teilweise nicht so wie beschrieben. Daher hier ein paar Tipps damit Ihr die Funktionen trotzdem nutzen könnt.

Sobald Ihr das Tool installiert habt, stehen euch weitere Workflows zur SQL-Skript Generierung zur Verfügung, der folgende Link beschreibt wie es normalerweise funktionieren sollte

http://blogs.msdn.com/b/adonet/archive/2010/02/08/entity-designer-database-generation-power-pack.aspx

Wenn es so nicht klappt, weil Ihr einfach nicht das angegeben Fenster bekommt, … dann hier ein paar Tipps die Ihr versuchen könnt um auch in den Genuss der automatischen Updateskripte zu kommen.

Wenn Ihr ein Updateskript erstellen wollt, dann am besten unter den Eigenschaften des Datenmodells “Generate Migration T-SQL.xaml” einstellen und es wird wie bisher ein Skript erstellt welches Ihr selbst ausführen könnt.

image

Damit die Erstellung dafür funktioniert, muss ebenfalls noch die SQL-Verbindung zu eurer Datenbank im Lokalen Projekt gespeichert werden, denn wenn dies nicht eingestellt wurde, kann beim Erstellen des Skriptes nicht auf die alte DB zugegriffen werden und die Erstellung schlägt fehl.

image

Das Script wird dann erstellt über “Datenbank aus Modell generieren…” (Hier kann es sein das ein neuer Dialog erscheint, wie in der externen Anleitung für das Tool beschrieben wurde. Ihr könnt aber kein Script auswählen, dann einfach nur auf weiter gehen und es wird das Script zur Erstellung einer neuen Datenbank genommen was Ihr bereits direkt in den Eigenschaften weiter oben eingestellt habt.)

image

Wenn das SQL Skript dann erstellt wurde und Ihr es ausführen wollt, dürft Ihr nicht vergessen noch den SQL-Command Mode einzuschalten (wird für das erstellte SQL Skript benötigt), das muss im VS oder auch im SQL Management Studio jedes mal gemacht werden.

image

Außerdem hat der Updategenerator noch “Probleme” das er nicht erkennt wenn Ihr einen Defaultwert für ein neues Property gesetzt habt und zeigt euch einen Fehler an, das das Script nicht ausgeführt werden kann, da es zu einem Datenverlust führt.

Hier müsste Ihr selbst nach den Updateroutinen für die Tabellen suchen und “Default” Value selbst dem Skript hinzufügen.

image

Dann noch die Fehlermeldungen am Anfang des Skriptes entfernen und schon habt ihr ein funktionierendes Updateskript für euer EF Modell.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s