Entity Framework v4を使用しています。 Nerd Dinner tutorial の指示に従いました。私は現在開発モードです(より高い環境にはリリースされていません)。モデルは依然として非常に揮発性であり、データを保持する必要がないため、新しいデプロイメントごとにテーブルを再作成したいと思います。ただし、これは発生しません。テーブルは作成/変更されません。または、DBに何も起こりません。パッケージマネージャーコマンドenable-migrations、add-migration(initial)を使用して移行モデルに移行する場合、これは機能し、移行を使用します。ただし、詳細な移行はまだしたくないため、最初の作成スクリプトのみが必要なので、毎回手動で移行フォルダーを削除し、コマンドを再実行(enable-migrations、add-migration)し、手動でデータベースを削除する必要があります何でも変えます。
最初に発生するコードのドロップ/作成動作を取得するにはどうすればよいですか?
DropCreateDatabaseAlways データベースの初期化子を使用します。アプリドメインでコンテキストを最初に使用するときに常にデータベースを再作成します。
Database.SetInitializer(new DropCreateDatabaseAlways<YourContextName>());
実際、データベースをシードする場合は、DropCreateDatabaseAlways
から継承される独自の初期化子を作成します。
public class MyInitializer : DropCreateDatabaseAlways<YourContextName>
{
protected override void Seed(MagnateContext context)
{
// seed database here
}
}
コンテキストを最初に使用する前に設定します
Database.SetInitializer(new MyInitializer());
データベースが既に存在し、モデルを変更する場合は、DropCreateDatabaseIfModelChanges<YourContextName>
を使用します