2016-06-03 7 views
0

Ich habe eine benutzerdefinierte meine benutzerdefinierten Identitätsklassen Setup so;Benutzerdefinierte IdentityUserRole doppelte Spalten für RoleId und UserId

public class AppUser : IdentityUser<int, AppUserLogin, AppUserRole, AppUserClaim> { } 
public class AppUserRole : IdentityUserRole<int> { } 
public class AppRole : IdentityRole<int, AppUserRole> { } 
public class AppUserClaim : IdentityUserClaim<int> { } 
public class AppUserLogin : IdentityUserLogin<int> { } 

Und immer wenn ich meine Datenbank neu erstellen gehe es immer wie dieses Bild unten.

enter image description here

enter image description here

enter image description here

Jede Idee, was ist der Grund dafür? Muss ich das mit der Fluent API einrichten? Ich habe das schon einmal gemacht und ich sehe in meinem anderen Projekt nicht die Notwendigkeit, das zu tun.

+0

Ja, weil Ihre Entitäten genannt werden 'App .....' und die Felder nicht diesen Präfix haben. Die Standardnamenskonventionen können Fremdschlüssel nicht auflösen, Sie müssen sie explizit zuordnen. –

Antwort

0

Gut so:

modelBuilder.Entity(ApplicationUser).HasMany(p => p.Roles).WithRequired().HasForeignKey(p => p.UserId); 
modelBuilder.Entity(ApplicationRole).HasMany(p => p.Users).WithRequired().HasForeignKey(p => p.RoleId);