Ho creato un'applicazione web molto semplice con asp.net mvc core 2.
Questa applicazione funziona con un database e un nucleo di framework di entità. Ho lavorato con Migration e Code First Stragegy.
Tutto funziona bene
Posso creare il database con il comando:
$ dotnet ef database update
Quello che voglio fare in questo momento è creare alcuni dati nel database (dal codice C #).
Ho letto alcune esercitazioni e ho creato una classe DataInitializer che contiene codice che creerà i miei dati.
Ho messo questa riga alla fine del metodo Startup.cs Configure:
DataInitializer dataseed = new DataInitializer();
dataseed.InitializeDataAsync(app.ApplicationServices);
Il problema è che i dati vengono inseriti ogni volta che eseguo la mia applicazione.
Non voglio controllare con il codice C # se i dati sono anche nel database perché è molto pericoloso.
Quello che voglio fare è attivare l'inizializzazione dei dati con la migrazione. È possibile ?
Grazie
questo è il formato che utilizzo per eseguire i dati di seed in una nuova tabella, funziona solo una volta per tabella assumendo che non ci siano dati in quella tabella.
//run migrations
_context.Database.Migrate();
if(!_context.SomeTable.Any()){
//foreach
//insert
_context.SaveChanges();
}