我一直在学习ASP.NET Identity 2.0的工作方式,我跟着this tutorial创建了一个新项目,并在我第一次尝试登录时自动创建了数据库表。这一切都有效,当我尝试登录时,创建了表AspNetRoles
,AspNetUserClaims
,AspNetUserLogins
,AspNetUserRoles
和AspNetUsers
,而我无需明确运行任何迁移。
我希望能够更改这些表的名称和/或列,因此我将其添加到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
表时是否遗漏了某些内容?