Ich versuche, EF-Code erste Migrationen zu verwenden, um eine Datenbank zu erstellen, wenn sie nicht vorhanden ist. Bisher habe ich Enabled-Migrations
erfolgreich. Ich habe auch Add-Migrations
verwendet, um eine erste Migration durchzuführen, die die Datenbank erstellt. Das Skript ist in der Richtung "Migration" und sieht korrekt aus. MigrateDatabaseToLatestVersion-Initialisierer konnte Datenbank nicht erstellen
Dies ist der Körper meines Haupt Methode
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext, Configuration>());
var directConfigContext = new MyDbContext();
Alles, was ich gelesen habe, das sagt das alles ist, was ich brauche. MyDbContext
ist in app.config
und sieht wie folgt aus:
<?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>
Außerdem, wenn ich die DbMigrator Klasse von EF bereitgestellt verwenden, wird die Datenbank korrekt gebaut (vermutlich die ursprüngliche Datenbankmigration Skript verwenden).
// This is how it actually works including creating the database if it doesn't exist.
var dbMigrator = new DbMigrator(new Configuration());
dbMigrator.Update();
Von dem, was ich verstehe, die initializer auf MyDbContext
Einstellung und danach Instanziieren dass DbContext
die Datenbank auf den neuesten Migration schaffen sollte ... was bin ich dabei?