6

Używałem w pierwszej kolejności kodu EF 5, z powodzeniem. Mam około 40 tabel. Wystąpił jednak problem, który wydaje mi się, że Migracje poprawiają się poprawnie. Chciałbym więc w jakiś sposób powiedzieć EF, aby traktował obecny schemat bazy danych jako nowy punkt wyjścia, i zacznij zarządzać nią od tego miejsca. W ten sposób mogę ręcznie dokonać niezbędnej zmiany schematu, a następnie powiedzieć EF, aby zasadniczo zaczął od tego punktu.Entity Framework 5 Code First - Jak "zacząć od nowa"?

Czy mogę to zrobić? Zakładam, że będę musiał usunąć tabelę __MigrationHistory lub usunąć jej zawartość. Ale nie jestem pewien, jak najlepiej to zrobić.

Odpowiedz

8

powinien być w stanie wykonać następujące czynności:

  • Zmień swoje bazy danych ręcznie w celu odzwierciedlenia zmian w modelu, który przyzwyczajenie być obsługiwane przez migracji. Wszystko powinno teraz działać, ale baza danych i system migracji nie są zsynchronizowane.

  • Uruchom Add-Migration ManuallyUpdatedDatabase -IgnoreChanges. Spowoduje to utworzenie migracji, która jest całkowicie pusta, więc nie spowoduje żadnych zmian w bazie danych, ale upewni się, że system wie o ręcznych zmianach, które zostały wprowadzone. W ten sposób zmiany ręczne nie zostaną uwzględnione podczas kolejnej migracji, którą utworzysz.

  • Uruchom Update-Database, aby zastosować pustą migrację.

Odtąd wszystko powinno działać jak zwykle. Po prostu masz "brakujący link" w swoich migracjach, ponieważ ręcznie wprowadziłeś zmiany.