36

Korzystam z migracji Entity Framework i Entity Framework w celu implementacji rozwiązania przy użyciu migracji z kodem i automatycznych migracji.Migracje Entity Framework przestały wykrywać aktualizacje POCO

Pracował świetnie, ale nagle przestał wykrywać aktualizacje, które wprowadzam do mojego POCO. Teraz kiedy dodać nową właściwość (bardzo proste właściwości, takie jak wiek lub e-mail) i wykonać Update-Database, nic się nie dzieje, a to daje mi to:

Określ flagę „-verbose”, aby wyświetlić polecenia SQL wykonywane podczas migracja.
Znaleziono 0 oczekujących migracji jawnych: [].
Dodawanie danych początkowych (jeśli metoda Seed została nadpisana w klasie Migrations Settings).

i nic się nie aktualizuje!

Czy ktoś ma pojęcie, dlaczego tak się dzieje?

+1

Czy nadal ustawiono flagę AutomaticMigrationsEnabled? – Betty

+0

Czy wykrywa zmiany, jeśli uruchomiono Add-Migration? – Betty

+0

Automatyczna migracja jest ustawiona na True, nie sprawdzałem migracji add, ale teraz musiałem odinstalować mechanizm encji i przeprowadzić ponowną instalację, aby go naprawić, a teraz działa teraz, więc nie mogę powiedzieć, ale jeśli Znowu chciałbym sprawdzić add-Migration – Stacker

Odpowiedz

2

To może być w dwóch powodów:

  1. Istnieje jakiś inny DbContext w kodzie, dlatego automatyczna migracja nie mógł się zdecydować, który kontekst w użyciu.
  2. Pojawiła się nowa zmiana, która zapętla porównanie schematu i modelu kodu, więc EF po prostu nie może znaleźć różnicy.

Generalnie migracje automatyczne są proste i szybkie w implementacji, ale nie są zabezpieczone przed ich użyciem. Na pewnym etapie takie migracje mogą zawieść.

Kilka lat temu opracowałem małe ORM oparte na Linq2SQL, , i było za pomocą automigracji SubSonic. Prawie tak samo jak migracje EF mogą teraz. Był doskonały w przypadku małych projektów i niewielkiej ilości danych do przetworzenia lub zmiany, ale kiedy projekt przerodził się w ponad 15 stołów, stał się koszmarem. Właśnie dlatego MS ogłosiło ostatnio Code-driven migrations. Są bezpieczniejsze i lepsze dla projektu. Możesz również spojrzeć na Migrator.Net (tym razem jest trochę lepiej niż EF).

Powiązane problemy