W poprzednich wersjach programu Entity Framework pierwsze migracje mogły być kontrolowane programowo za pomocą klasy DbMigrator (np. Sprawdzanie i stosowanie dostępnych migracji). Czy ta klasa nadal istnieje, czy istnieje funkcjonalny zamiennik? Znalazłem post na wczesnej wersji RC, która wskazywała na substytut, ale wydaje się, że również brakuje Core 1.0. Mogę kontrolować moje migracje przez CLI bez problemu, ale myślę, że będzie potrzebne rozwiązanie w postaci kodu dla niestandardowych scenariuszy narzędziowych.Entity Framework Core 1.0 pierwsze migracje przy użyciu kodu?
Odpowiedz
Funkcjonalny zamiennik można znaleźć w kilku miejscach, przede wszystkim w interfejsie API znalezionym w przestrzeni nazw Microsoft.EntityFrameworkCore.Migrations.
niektórych miejscach wyglądać:
IHistoryRepository.GetAppliedMigrations()
IMigrator.Migrate(string targetMigration)
(który jest taki sam jak wywoływanieDbContext.Database.Migrate()
)IMigrationAssembly
znaleźć aktualne migracje
Z wyjątkiem IMigrator.Migrate
, używanie tych API zwykle oznacza ciągnięcie s e-mail z internal EF Core's service container. Wykonuje się to, wywołując .GetService<TService>()
w swoim dbcontext.
Przykład:
var migrator = context.GetService<IMigrator>().Migrate();
Metoda GetService
Znajduje się w przestrzeni nazw 'Microsoft.EntityFrameworkCore.Infrastructure'. Nie potrzebujesz dodatkowej paczki. – natemcmaster
Dla tych, którzy przyjeżdżają na to pytanie szuka czegoś podobnego, ale dla ASP.NET MVC Rdzenia 1.0 i Entity Framework Rdzenia 1.0, patrz poniżej: http://stackoverflow.com/ pytania/38282138/run-database-migrations-using-entity-framework-core-on-application-start –