У меня есть следующее отображение для поддержки таблицы «многие ко многим» (User_Role)
modelBuilder.Entity<Role>()
.HasMany<User>(u => u.users)
.WithMany(r => r.roles)
.Map(m =>
m.MapLeftKey("role_id")
m.MapRightKey("user_id")
m.ToTable("User_Role"));
Это прекрасно работает от сопоставления множества ролей пользователю и множества пользователей роли. Проблема у меня возникает, когда мне нужно добавить новую строку в таблицу User_Role через сущность следующим образом:
public class User_Role
{
[Key Column(Order=1)]
public int role_id {get;set;)
[Key Column(Order=1)]
public int user_id {get;set;)
}
Всякий раз, когда я пытаюсь получить доступ к этой сущности следующим образом:
dbContext.User_Role.Add(new User_Role {user_id ....
EF ищет несуществующую таблицу с именем User_Role1 ... она добавляет '1' к имени таблицы.
Затем я попытался добавить:
[Table("User_Role")]
Это позаботится о добавлении '1', но теперь я получаю эту ошибку:
«EntitySet« RoleUser »со схемой« dbo »и таблицей« User_Role »уже определен. Каждый EntitySet должен ссылаться на уникальную схему и таблицу»
Я смог подтвердить, что следующие строки вызывают проблему, но мне как-то нужны они оба
m.ToTable("User_Role") and public class User_Role..
Любые предложения будут великолепны ... Я в тупике.