我想使用EF代碼第一次遷移來建立數據庫,如果它不存在。到目前爲止,我已經成功地Enabled-Migrations
。我還使用Add-Migrations
進行初始遷移,以建立數據庫。該腳本處於Migrations方向並且看起來正確。MigrateDatabaseToLatestVersion初始化程序未能創建數據庫
這是我的主要方法的主體
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
應該創建數據庫的最新移民......我缺少什麼?