Reputation: 1120
I have a issue with my UserRole table I renamed my tables by the following definition
protected override void OnModelCreating(DbModelBuilder builder)
{
builder.Conventions.Remove<PluralizingTableNameConvention>();
builder.Entity<IdentityUserClaim>().ToTable("UserClaim").HasKey<Int32>(r => r.Id);
builder.Entity<IdentityUserLogin>().ToTable("UserLogin").HasKey<string>(l => l.UserId);
builder.Entity<IdentityRole>().ToTable("Role").HasKey<string>(r => r.Id);
builder.Entity<User>().ToTable("User").HasKey(r => new{ r.IDNumber, r.UserName});
builder.Entity<IdentityUser>().ToTable("User").HasKey<string>(r => r.UserName);
builder.Entity<IdentityUserRole>().ToTable("UserRole").HasKey(r => new { r.RoleId, r.UserId });
}
I have not defined a custom UserRole class so in this case am just using IdentityUserRole. However, when I look at my UserRole table there is RoleId
and IdentityRole_Id
with similar values
Using my UserManager
IdentityResult result = await this.UserManager.RemoveFromRoleAsync(regUser.Id, role.Name);
It only removes the IdentityRole_Id
and IdentityUser_UserName
entities. I can't figure out a way to remove the RoleId
and UserId
Upvotes: 1
Views: 349
Reputation: 15015
You should call base.OnModelCreating(builder);
before your code which will setup relations for AspNetIdentity
protected override void OnModelCreating(DbModelBuilder builder)
{
// Add this line
base.OnModelCreating(builder);
builder.Conventions.Remove<PluralizingTableNameConvention>();
builder.Entity<IdentityUserClaim>().ToTable("UserClaim").HasKey<Int32>(r => r.Id);
builder.Entity<IdentityUserLogin>().ToTable("UserLogin").HasKey<string>(l => l.UserId);
builder.Entity<IdentityRole>().ToTable("Role").HasKey<string>(r => r.Id);
builder.Entity<User>().ToTable("User").HasKey(r => new{ r.IDNumber, r.UserName});
builder.Entity<IdentityUser>().ToTable("User").HasKey<string>(r => r.UserName);
builder.Entity<IdentityUserRole>().ToTable("UserRole").HasKey(r => new { r.RoleId, r.UserId });
}
Upvotes: 1