2016-07-16 133 views
5

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?

+0

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 –

risposta

6

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:

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(); 
+0

Il metodo GetService non è disponibile nel mio contesto. Suppongo che sia un metodo di estensione? Quale pacchetto e spazio dei nomi dipendenti contiene quel metodo? –

+0

Si trova nello spazio dei nomi 'Microsoft.EntityFrameworkCore.Infrastructure'. Non hai bisogno di un pacchetto extra. – natemcmaster