5

W mojej aplikacji włączam Code First Migrations z pewnymi migracjami, Używam również SQL Server Compact do testu integracji.Entity Framework 6 - Nie tworzy tabel przy włączaniu migracji

Gdy uruchomię moich testów, Entity Framework utworzyć pustą bazę danych i próbuje uruchomić migrację na tej pustej bazy danych i rzucony The specified table does not exist.

podstawie this raportu myślę wykorzystanie Migracji w Entity Framework 6 uległ zmianie.

Testuję wszystkie inicjatory bazy danych z Context.Database.Create();, ale we wszystkich przypadkach tabale nigdy nie zostały utworzone.

+0

Migracje pracować jak zawsze. Potrzebujesz inicjalizatora MigrateDatabaseToLatestVersion. –

+0

Przetestowałem to, a tabela nie została utworzona. –

Odpowiedz

14

I don Wiesz, że jest to błąd EntityFramework, ale gdy zmieniłem nazwę przestrzeni Migration Configuration z domyślnej (Projectname/Migrations) na dowolną domyślną nazwę, migracja działa dobrze.

+0

OMG to naprawdę działa ... – TamarG

+0

Rzeczywiście działa. Zmiana przestrzeni nazw może nie być wystarczająca, zmień także nazwę klasy. Wygląda na to, że w czasie wykonywania jest jakiś konflikt nazw ... – Jerther

+0

To naprawdę dziwne. To działało również dla mnie. Jakieś wyjaśnienie, dlaczego to działa? – digitalmonkey

0

Context.Database.Create() nie wykonuje migracji! Tworzy tylko pustą bazę danych. Aby zaktualizować bazę danych z kodem do najnowszej wersji trzeba użyć metody DbMigrator.Update:

var migrator = new DbMigrator(new MyMigrationsConfiguration()); 
migrator.Update(); 

Alternatywnie można użyć MigrateDatabaseToLatestVersion

Database.SetInitializer(new MigrateDatabaseToLatestVersion<BlogContext, Configuration>()); 

jest to opisane w szczegółach tutaj: http://msdn.microsoft.com/en-us/data/jj591621.aspx#initializer

-1

Zdarza się to podczas dodawania modelu i uruchamiania komendy dodawania migracji.

Oto najprostszy przyczyną tego problemu:

Dodaj nowo dodaną właściwość modelu do klasy IdentityDbContex.

Oto kroki:

  1. tworzenia modelu
  2. dodać właściwość do klasy IdentityDbContex
  3. prowadzony dodatek migracja
  4. update-baza
Powiązane problemy