我正在尝试使用EF Code First Migrations来创建数据库(如果它不存在)。到目前为止,我已经成功地启用了迁移,还使用Add-Migrations创建了一个初始迁移以构建数据库。脚本位于迁移目录中,看起来正确无误。
这是我的Main方法的主体。
此外,如果我使用EF提供的DbMigrator类,则可以正确构建数据库(可能使用初始数据库迁移脚本)。
据我所了解,在
这是我的Main方法的主体。
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext, Configuration>());
var directConfigContext = new MyDbContext();
根据我所了解的,这就是我所需要的全部内容。 MyDbContext
在 app.config
中,并且看起来像这样:
<?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>
此外,如果我使用EF提供的DbMigrator类,则可以正确构建数据库(可能使用初始数据库迁移脚本)。
// This is how it actually works including creating the database if it doesn't exist.
var dbMigrator = new DbMigrator(new Configuration());
dbMigrator.Update();
据我所了解,在
MyDbContext
上设置初始化器,然后实例化该DbContext
应该会创建到最新迁移的数据库...我错过了什么吗?