2012-05-24 20 views
10

Mam już ustawioną bazę danych, chcę dodać nowe pole do modelu, nową kolumnę do tabeli, czy jest sposób, w jaki mogę to zrobić bez utraty wszystkich danych? Normalnie, jeśli usuniesz DB, wszystko to zostanie automatycznie odtworzone, ale nie chcę utracić danych. Używam programu SQL Server 2008 jako bazy danych.EF 4.1 Code First - dodaj kolumnę

+0

prawdopodobnie duplikat http://stackoverflow.com/questions/5656604/updating-database-schema-with-entity-framework-code-first –

Odpowiedz

9

Będziesz musiał użyć EF Migrations, aby dodać nową kolumnę do swojej bazy danych. Możesz przeczytać więcej o EF Migrations here i here.

+0

Przydatne dokumentację, dzięki! +1 – ChaseHardin

2

Jeśli używasz kodu jako pierwszego, zawsze dodawałem kolumnę do bazy danych ręcznie w takich sytuacjach. Niestety, nie ma prostego sposobu na zautomatyzowanie przyrostowych aktualizacji modeli za pomocą Code First.

Na przykład, jeden z własnych błędów EF kod najpierw, nawet określić ręcznej aktualizacji jako najlepszą opcję:

Model cofając się „context” kontekstu zmieniło się od bazy danych został utworzony. Albo ręcznie usuń/zaktualizuj bazę danych, albo wywołaj Database SetInitializer za pomocą instancji IDatabaseInitializer. Na przykład strategia DropCreateDatabaseIfModelChanges automatycznie usunie i ponownie utworzy bazę danych i opcjonalnie zapełni ją nowymi danymi.

Powiązane problemy