29

Uruchomiono, aby użyć polecenia add-migration w konsoli zarządzania pakietami do wygenerowania migracji dla mojego modelu. Moje pytanie dotyczy metody "w górę i w dół". Zakładam, że celem metody down jest usunięcie wszystkich zależności i usunięcie tabel, jeśli są już w bazie danych? Również, że metoda down zostanie wykonana przed metodą up? Metoda up to odwrotność, tworzenie/aktualizacja tabel/indeksów itp.?C# Code-Pierwsza migracja, góra/dół?

Czasami, gdy używam tego, metoda "w dół" pobiera wiele tabel tworzenia, które następnie są upuszczane? Ostatnio stworzyło i upuściło wiele stołów i prawie to samo wydarzyło się w metodzie up. Czemu?

Odpowiedz

53

Sposób Up uaktualnia bazę danych z obecnego stanu (reprezentowanego przez poprzedniego migracji) do stanu oczekiwanego przez obecnego migracji kodu. Metoda Down wykonuje operację odwrotną - usuwa wszystkie zmiany z bieżącej migracji i przywraca bazę danych do stanu oczekiwanego przez poprzednią migrację. To tak, jak instalowanie/odinstalowywanie migracji. Tylko jedna z tych metod jest wykonywana po wywołaniu update-database. Aby użyć metody Down, należy jawnie określić docelową migrację do uaktualnienia. Jeśli migracja docelowa jest stara, interfejs API migracji automatycznie zastosuje metodę Down i obniży poziom bazy danych.

20

Wystarczy dodać do @Ladislava Mrnki. Musiałem użyć w dół() po raz pierwszy i zajęło mi trochę czasu, aby to działało tak:

Update-Database -Target:201407242157114_46 

Gdzie moja ostatnia migracja jest 47 (gdzie dodano nowe rzeczy). Here's a nice explanation, jak przywrócić bazę danych i usunąć złą migrację.

Mam nadzieję, że pomoże to innym praktykantom magów :)