要在Oracle中使用ASP.NET Identity,我必须特别重命名表名称schema name。我使用以下代码更改其名称:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("TRN_ASPNET_USERS", "ADMIN");
modelBuilder.Entity<ApplicationUser>().ToTable("TRN_ASPNET_USERS", "ADMIN");
modelBuilder.Entity<IdentityUserRole>()
.HasKey(r => new { r.UserId, r.RoleId })
.ToTable("TRN_ASPNET_USER_ROLES", "ADMIN");
modelBuilder.Entity<IdentityUserLogin>()
.HasKey(l => new { l.LoginProvider, l.ProviderKey, l.UserId })
.ToTable("TRN_ASPNET_USER_LOGINS", "ADMIN");
modelBuilder.Entity<IdentityUserClaim>().ToTable("TRN_ASPNET_USER_CLAIMS", "ADMIN");
modelBuilder.Entity<IdentityRole>().ToTable("TRN_ASPNET_ROLES", "ADMIN");
base.OnModelCreating(modelBuilder);
}
当我还在使用Micorsoft SQL Server时,我最终得到了什么。有新创建的表,就像我更改名称的表。但旧表名仍然存在(在重新创建数据库之后)。 Identity框架使用旧表并将数据存储在旧表中 - 而不是在新表中。
因此表名称已更改,但旧表仍然存在且正在使用。请帮忙。