2016-06-03 1 views
0

У меня есть пользовательские настройки для моих пользовательских классов идентичности;Пользовательские идентификационные столбцы для повторяющихся столбцов для RoleId и 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> { } 

И всякий раз, когда я запускаю воссоздать свою базу данных, он всегда появляется, как на рисунке ниже.

enter image description here

enter image description here

enter image description here

Любая идея, что является причиной этого? Должен ли я установить это с помощью Fluent API? Я делал это раньше, и я не вижу в моем другом проекте необходимости сделать это.

+0

Да, потому что ваши объекты называются '' App ..... и поля не имеют этот префикс. Соглашения об именах по умолчанию не могут разрешать внешние ключи, вы должны их явно сопоставлять. –

ответ

0

Ну как это:

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