我使用ASP.NET Identity 2和EF代码首先创建5个表
dbo.AspNetRole
dbo.AspNetUsers
dbo.AspNetUsersClaim
dbo.AspNetUsersLogin
dbo.AspNetUsersRole
我需要更改名称,所以我使用了这段代码
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("RepricerUsers", "miportal");
modelBuilder.Entity<IdentityUserClaim>().ToTable("RepricerUsersClaim", "miportal");
modelBuilder.Entity<IdentityUserLogin>().ToTable("RepricerUsersLogin", "miportal");
modelBuilder.Entity<IdentityUserRole>().ToTable("RepricerUsersRole", "miportal");
modelBuilder.Entity<IdentityRole>().ToTable("RepricerRole", "miportal");
}
虽然有效但从IdentityUser
创建的表格是重复的,所以我找到了dbo.AspNetUsers
和miportal.RepricerUser
。
为什么这个表重复了?我错过了什么吗?
答案 0 :(得分:3)
我有类似的问题。你不能直接更改aspIdentity表名,所以你应该用一个继承自IdentityUser类的类来做。这是我在我的一个项目中所做的。你可以改变类名无论你想要什么。
的模型强>
public class User : IdentityUser
{
public string Address { get; set;}//it can be any propery or you can leave class empty
}
配置类
public sealed class UserConfig : EntityTypeConfiguration<User>
{
public UserConfig()
{
ToTable("RepricerUsers", "miportal");
}
}
然后在你的上下文类
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new UserConfig());
}