Nelle versioni precedenti di Entity Framework le migrazioni code-first potevano essere controllate a livello di codice con la classe DbMigrator (ad esempio, verificare e applicare le migrazioni disponibili). Quella classe esiste ancora da qualche parte o esiste una sostituzione funzionale? Ho trovato un post su una delle prime versioni RC che indicava un sostituto, ma sembra che manchi anche il Core 1.0. Posso controllare le mie migrazioni attraverso la CLI senza problemi, ma penso che sarà necessaria una soluzione in-code per gli scenari di strumenti personalizzati.Entity Framework Core 1.0 migrazioni code-first utilizzando il codice?
risposta
La sostituzione funzionale può essere trovata in alcuni punti, principalmente nell'API che si trova nello spazio dei nomi Microsoft.EntityFrameworkCore.Migrations.
Alcuni luoghi a guardare:
IHistoryRepository.GetAppliedMigrations()
IMigrator.Migrate(string targetMigration)
(che è lo stesso di chiamareDbContext.Database.Migrate()
)IMigrationAssembly
per trovare migrazioni attuali
Con l'eccezione di IMigrator.Migrate
, usare queste API di solito significa tirare la s ervice su internal EF Core's service container. Questo viene fatto chiamando .GetService<TService>()
sul tuo dbcontext.
Esempio:
var migrator = context.GetService<IMigrator>().Migrate();
Il metodo GetService
Si trova nello spazio dei nomi 'Microsoft.EntityFrameworkCore.Infrastructure'. Non hai bisogno di un pacchetto extra. – natemcmaster
Per chi arriva a questa domanda cerca di qualcosa di simile, ma per ASP.NET MVC core 1.0 e Entity Framework Core 1.0, vedere questo: http://stackoverflow.com/ domande/38282138/run-database-migrations-using-entity-framework-core-on-application-start –