Entity Framework (4.3) 移行を使用しています。データを追加するために移行後に呼び出されることになっている Seed メソッドを定義する通常の構成クラスがあります。
internal sealed class SettingsConfig : DbMigrationsConfiguration<My.Assembly>
{
public SettingsConfig()
{
AutomaticMigrationsEnabled = false;
}
protected override void Seed(ScannerAreaManager.DataAccess.CableSenseLocal context)
{
// This method will be called after migrating to the latest version.
}
}
データベースに何が起こっているかを確認するために、SQL Server プロファイラーを実行しています。
ここで、データベースを削除し、F5 (デバッガーに接続) を使用して Visual Studio からこのアプリケーションを実行すると、データベースが作成され、移行が実行され、seed メソッドが呼び出されてデータベースにデータが追加されていることがわかります。
その後、データベースを削除し、Ctrl-F5 (デバッガーにアタッチされていない) を使用してアプリケーションを再度実行すると、データベースが作成され、移行が実行されますが、シード メソッドは呼び出されません。
確かにこれは設計によるものではありませんか?何か案は?