Identity迁移如何确定何时创建表

时间:2017-05-25 18:03:07

标签: asp.net asp.net-identity ef-migrations

我一直在学习ASP.NET Identity 2.0的工作方式,我跟着this tutorial创建了一个新项目,并在我第一次尝试登录时自动创建了数据库表。这一切都有效,当我尝试登录时,创建了表AspNetRolesAspNetUserClaimsAspNetUserLoginsAspNetUserRolesAspNetUsers,而我无需明确运行任何迁移。

我希望能够更改这些表的名称和/或列,因此我将其添加到ApplicationDbContext

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.Entity<ApplicationUser>().ToTable("Users");
}

然后,当我运行我的应用程序时,我得到一个关于表Users不存在的例外。我从我的数据库中删除了__MigrationHistory表,试图让Visual Studio再次创建我的Identity表,但它仍然没有创建Users表,我得到了关于{{{ 1}}不存在。

我通过创建迁移并运行Users让Visual Studio创建Users表,但我不明白为什么Visual Studio在没有运行任何迁移的情况下创建了默认的Identity表,但它不会创建Update-Database表而不必显式运行迁移。是否有内置的特殊逻辑只会创建具有默认名称的Identity表,或者在将Users映射到ApplicationUser表时是否遗漏了某些内容?

0 个答案:

没有答案