2012-03-28 14 views
7

Quando si eseguono le migrazioni per creare un database tramite la console di Gestione pacchetti. C'è un modo per stampare il testo dal metodo Seed alla console NuGet?Migrazioni EF, Output Text to Nuget Console

solo il semplice comando di creazione:

Update-Database -StartupProjectName "Data" -Verbose 

risposta

1

Il comando

Update-Database -Verbose 

stampa nella console il codice SQL per la migrazione, ma un altro modo è:

Update-Database -Script 

che aprire un'altra file in Visual Studio con il codice sql.

Questo è l'unico modo per ottenere il codice sql della migrazione. Non è possibile ottenere il codice SQL della migrazione in debug perché la migrazione viene eseguita come power shell e perché non esegue il progetto.

Montaggio:

Non si può andare a in migrazione o debbug perché il percorso di migrazione come un comando di shell di potenza.

il possibile per ottenere il codice sorgente migrazione Entity Framework> in entityframework.codeplex.com

+0

Ciò restituirebbe il codice SQL, ma non produrrebbe ciò che accade all'interno del metodo seme – amhed

+0

@Amhed Ne parlo: non è possibile eseguire il debug perché è in power shell, non è possibile accedere al metodo. È possibile leggere il metodo se si ottiene il codice sorgente di Entity Framework, poiché le migrazioni vengono eseguite come power shell e si trovano in un altro progetto, non all'interno di Entity Framework – MayogaX

2

È possibile eseguire un comando SQL STAMPA entro i Up() o Down() metodi di ogni singola migrazione.

base.Sql("PRINT 'I heart kittens';"); 

Questa uscita volonta 'I cuccioli cuore' alla finestra Console Package Manager nel testo in giallo evidenziato durante il processo di 'aggiornamento del database'.