カスタム データベース初期化子で Seed メソッドを呼び出す際に問題が発生しています。私はEF 5.0を使用しており、次のコードがあります:
public static class MyDatabase
{
public static void Initialize()
{
Database.SetInitializer(new MyInitializer());
}
}
public class MyInitializer : DropCreateDatabaseAlways<MyContext>
{
protected override void Seed(MyContext context)
{
base.Seed(context);
context.Roles.Add(new Role
{
ID = 1,
Name = "User",
});
context.Roles.Add(new Role
{
ID = 2,
Name = "Admin",
});
context.SaveChanges();
}
}
これら 2 つのクラスは、MVC アプリとは別のクラス ライブラリに存在します。で、メソッドGlobal.asax
を呼び出します。Initialize()
MyDatabase.Initialize();
データベースは問題なく作成さSeed(MyContext context)
れます。メソッドが呼び出されず、データベースにデータが入力されないだけです。