Dlaczego usunąć tabelę, aby rozpocząć? Czy chcesz go odtworzyć?
Zanim przejdziemy do trudniejszych rozwiązań próbowałeś za pomocą opcji -TargetMigration aby rzucić z powrotem do migracji tuż przed tym, który został tabela stworzyć w nim? Mam wrażenie, że dostaniesz błędy SQL dotyczące próby usunięcia tabeli lub indeksu fk, których nie ma, ale warto spróbować. Możesz to zrobić, używając tego polecenia: update-database -TargetMigration YourOldMigration
. Spowoduje to wycofanie wszystkich migracji zastosowanych po migracji docelowej za pomocą poleceń zawartych w metodach Down() plików migracji. Jeśli otrzymujesz błędy SQL, możesz spróbować zmodyfikować zawartość metodami Down(), aby uniknąć błędów. Ostrożny. Może to spowodować utratę danych. Jeśli EF ostrzega o tym i nie obchodzi cię to. Spróbuj dodać -Force do końca twojego polecenia.
Alternatywnie i dodatkowo ....
Twoje migracje nie tylko oblicza się porównując swój schemat db do dbcontext/modeli. Jeśli otworzysz bazę danych SQL Azure w studiu zarządzania serwerami sql, powinieneś zobaczyć tabelę o nazwie __MigrationHistory. Przechowuje wszystkie migracje, które zostały zastosowane do bazy danych za pomocą automatycznych migracji.
Proszę przeczytać całą drogę przed uruchomieniem. Przed skokiem warto rozważyć kilka czynników. Zakładając, że już nie manipulowałeś, powinieneś znaleźć wiersz dla zestawu zmian, który pierwotnie stworzył twój stół. Usuń ten wiersz. Teraz migracje automatyczne EF będą uważać, że ta zmiana nie została jeszcze zastosowana do twojego DB. Jeśli uruchomisz bazę danych aktualizacji, powinieneś spróbować uruchomić ją ponownie.
Jeśli miał inne zmiany w tym pliku migracji spróbuje i ponownie uruchomić te też. Może to powodować różnego rodzaju błędy sql. Prawdopodobnie będziesz chciał ręcznie wycofać wszystkie zmiany, które również były częścią tej migracji. Martwisz się utratą danych? Spróbuj skopiować dane do ręcznie utworzonej tabeli do zapisania, aż do zakończenia. Po migracji do pracy możesz skopiować dane z powrotem do nowych tabel/kolumn.
Podwójna alternatywa. Jeśli nie jesteś zbyt daleko w rozwoju i nie masz zbyt wielu obaw związanych z utratą danych, łatwiej będzie upuścić całą bazę danych i pozwolić, aby automatyczne migracje ponownie tworzyły ją od zera.
Mam nadzieję, że Cię tam znajdziesz