データベースが存在しない場合は、EFコードの最初の移行を使用してデータベースを構築しようとしています。これまでのところ、私はEnabled-Migrations
成功しています。Add-Migrations
また、データベースを構築する最初の移行を行ったこともあります。スクリプトは移行方向にあり、正しく見えます。
これは私の 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
、データベースを最新の移行に作成する必要があるインスタンス化...何が欠けていますか?