EntityFramework Db初始化

时间:2016-02-05 07:06:21

标签: c# entity-framework

我有两个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方法,反过来我的表和默认用户也没有生成。

真心感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

致电:

Database.SetInitializer<ApplicationDbContext>(new ApplicationDbInitializer());

您需要致电:

var context = new ApplicationDbContext();
context.Database.Initialize(true);

这就是我做到的。