我在自定义数据库初始化程序上调用 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();
}
}
这两个类存在于与 MVC 应用程序不同的类库中。在 中Global.asax
,我调用该Initialize()
方法:
MyDatabase.Initialize();
数据库创建得很好,只是Seed(MyContext context)
没有调用方法,也没有数据进入我的数据库。