Sto provando a utilizzare prima le migrazioni del codice EF per creare un database se non esiste. Finora, ho avuto successo con Enabled-Migrations
. Ho anche utilizzato Add-Migrations
per effettuare una migrazione iniziale che crea il database. Lo script è nella direzione della migrazione e sembra corretto.L'inizializzatore MigrateDatabaseToLatestVersion non riesce a creare il database
Questo è il corpo del mio metodo principale
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext, Configuration>());
var directConfigContext = new MyDbContext();
Tutto quello che ho letto che dice che questo è tutto quello che serve. MyDbContext
è in app.config
e si presenta così:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="MyDbContext" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=DbConfig;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
Inoltre, se uso la classe DbMigrator fornito da EF, il database è costruito in modo corretto (presumibilmente utilizzando lo script iniziale di migrazione di database).
// This is how it actually works including creating the database if it doesn't exist.
var dbMigrator = new DbMigrator(new Configuration());
dbMigrator.Update();
Da quello che ho capito, l'impostazione del inizializzatore su MyDbContext
e poi istanziare che DbContext
dovrebbe creare il database per l'ultima migrazione ... cosa mi manca?