こんにちは、私は新しいプロジェクトを開始しており、優れたデータベース初期化アルゴリズムを取得するのに本当に苦労しています。
私が望むのは、アプリが初期化されるたびにドロップ/作成することです。そして、移行を実行します。
したがって、私の理想的なワークフローは (アプリの起動時に) : 1. データベースが存在する場合は削除する 2. モデル クラスからデータベースを作成する 3. Web セキュリティ (ASP.NET ロール プロバイダー) を初期化する 4. 移行スクリプトを実行する
3と4は交換可能です。
私が抱えている問題は、移行が実行されないか、ドロップデータベースが存在する場合は実行されないことです。(そして、ステップ 2 で作成された UserProfile テーブルに外部キー制約を追加できるように、データベースが作成された後に Web セキュリティを実行する必要があるため、Web セキュリティの初期化にはいくつかのトリックが含まれます。
この問題の考えられる理由の 1 つは、移行が Drop/Create ポリシーと組み合わせて実行されることを意図していなかったためだと思います。まったく新しいプロジェクトで移行を実行する必要があるのは、列にインデックスを指定したいからです。これまでのところ、これを行う方法を知っている唯一の方法は、移行スクリプトです。
public override void Up()
{
CreateIndex("dbo.UserProfile", "UserName", true);
}