我有两个dbcontext都连接到同一个数据库。
其中一个我使用迁移初始化并创建了数据库。
另一个使用Database.SetInitializer
的数据库初始化程序Database.SetInitializer<ApplicationDbContext>(new ApplicationDbInitializer());
public class ApplicationDbInitializer : DropCreateDatabaseAlways<ApplicationDbContext>//DropCreateDatabaseIfModelChanges<ApplicationDbContext>
{
protected override void Seed(ApplicationDbContext context) {
InitializeIdentityForEF(context);
base.Seed(context);
}
}
InitializeIdentityForEF方法创建一个具有密码和角色的用户。
我的问题是,即使在每次运行应用程序时调用Database.SetInitializer方法,也不会调用ApplicationDbInitializer类中的Seed方法,反过来我的表和默认用户也没有生成。
真心感谢任何帮助。
由于
答案 0 :(得分:0)
致电:
Database.SetInitializer<ApplicationDbContext>(new ApplicationDbInitializer());
您需要致电:
var context = new ApplicationDbContext();
context.Database.Initialize(true);
这就是我做到的。