Jak wymusić usunięcie i ponowne utworzenie wybranej tabeli w migracjach typu code-first?
Chcę usunąć tabelę z tysiącem kolumn i pozwolić migracji na jej odtworzenie.
Mogę wystawić
DropTable("MyTableWithManyColumns");
Problem w tym, że robiłbym ręczne tworzenie tabel w ten sposób
CreateTable( "dbo.MyTable",
c => new
{
RowId = c.Int(nullable: false, identity: true),
// many columns follow...
})
.PrimaryKey(t => t.RowId);
Najłatwiejszym sposobem jest użycie programu SSMS i kliknięcie prawym przyciskiem myszy Upuść Utwórz tabelę do nowego okna i wykonanie stamtąd.
Ale czy istnieje łatwy sposób korzystania z migracji kodu?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
4 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
OR
Mam nadzieję że to pomoże!
Anonimowy użytkownik
Potwierdzenie od:
Powinien uruchomić wszystkie migracje, których nie ma ponownie w historii. Zachowaj ostrożność, jeśli masz migracje, które dotyczą więcej niż jednej tabeli. Może być konieczne pominięcie niektórych migracji i ręczne dodanie zmian.
Usunięcie DbSets z kontekstu powinno również działać i prawdopodobnie jest lepsze, ale dla mnie w Entity-Framework-Core w ogóle nie działało.
Anonimowy użytkownik
Potwierdzenie od:
Wszystko będzie działać tak, jak powinno
Miłego kodowania
Anonimowy użytkownik
Potwierdzenie od:
Ale oto mój sukces:
W SQL Management Studio wygenerowałem skrypty dla całej bazy danych (lub tabel, o których wiesz, że są ze sobą powiązane). Znalazłem wszelkie ograniczenia klucza obcego (FK), indeksy itp. Związane z MyTable. Również sql generuje instrukcje wstawiania dla MyTable. Ograniczenia porzucania, upuszczanie tabeli, tworzenie tabeli (oczywiście z odpowiednią kolejnością pól), wstawianie danych, ponowne tworzenie ograniczeń FK.
Chciałem tylko sprawdzić bazę danych, próbowałem wprowadzić zmiany w bazie danych.
Wszystko działało.