2012-05-24 8 views
10

Ich habe meine Datenbank bereits festgelegt, ich möchte ein neues Feld zum Modell hinzufügen, eine neue Spalte in die Tabelle, gibt es eine Möglichkeit, dies zu tun, ohne alle meine Daten zu verlieren? Normalerweise, wenn Sie die DB löschen, wird alles automatisch neu erstellt, aber ich möchte die Daten nicht verlieren. Ich verwende SQL Server 2008 als Datenbank.EF 4.1 Code First - Spalte hinzufügen

+0

wahrscheinlich duplicate von http://stackoverflow.com/questions/5656604/updating-database-schema-with-entity-framework-code-first –

Antwort

9

Sie müssen EF Migrations verwenden, um die neue Spalte zu Ihrer Datenbank hinzuzufügen. Sie können mehr über EF Migrationen here und here lesen.

+0

Nützliche Dokumentation, danke! +1 – ChaseHardin

2

Wenn Sie zuerst Code verwenden, habe ich die Spalte in solchen Situationen immer manuell zur Datenbank hinzugefügt. Leider gibt es keine einfache Möglichkeit, inkrementelle Modellaktualisierungen mit Code First zu automatisieren.

Zum Beispiel eines der EF-Code Erste eigene Fehler selbst angeben manuelle Aktualisierung als die beste Option:

Das Modell der ‚Ihr Kontext‘ Kontext geändert hat die Sicherung, da die Datenbank erstellt wurde. Löschen oder aktualisieren Sie die Datenbank manuell oder rufen Sie Database SetInitializer mit einer IDatabaseInitializer-Instanz auf. Beispielsweise wird die DropCreateDatabaseIfModelChanges-Strategie die Datenbank automatisch löschen und neu erstellen und optional mit neuen Daten versehen.

Verwandte Themen