Я хочу создать таблицу, аналогичную таблице AspNetUserRoles
в моей базе данных, в которой есть следующие столбцы:
User_id
Role_id
Эти столбцы относятся к таблицам пользователей и ролей
Как я могу создать один, используя мою модель? Я пробовал это так:
public class AspNetUserRolesExtendedDetails
{
[Key]
[Column(Order = 0)]
public ApplicationUser UserId { get; set; }
[Key]
[Column(Order = 1)]
public AspNetRolesExtendedDetails RoleId { get; set; }
}
Но когда я пытаюсь запустить миграцию, появляется эта ошибка:
AspNetUserRolesExtendedDetails:: EntityType 'AspNetUserRolesExtendedDetails' не определен ключ. Определите ключ для этого EntityType.
AspNetUserRolesExtendedDetails: EntityType: EntitySet «AspNetUserRolesExtendedDetails» основан на типе «AspNetUserRolesExtendedDetails», для которого не определены ключи.
Как я могу создать такую таблицу и как правильно ее назвать?
EDIT:
Когда я обновляю свою модель так:
public class AspNetUserRolesExtendedDetails
{
[Key]
[Column(Order = 0)]
[ForeignKey("AspNetUsers")]
public ApplicationUser UserId { get; set; }
[Key]
[Column(Order = 1)]
[ForeignKey("AspNetRolesExtendedDetails")]
public AspNetRolesExtendedDetails RoleId { get; set; }
}
Я получаю эту ошибку:
Недопустимый атрибут ForeignKeyAtt для свойства RoleId типа App.Models.AspNetUserRolesExtendedDetails. Имя внешнего ключа «AspNetRolesExtendedDetails» не найдено в зависимом типе «App.Models.AspNetUserRolesExtendedDetails». Значение Name должно быть разделенным запятыми списком имен свойств внешнего ключа.
Обновление:
[Key]
[Column(Order = 0)]
[ForeignKey("Id")]
public String UserId { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
[Key]
[Column(Order = 1)]
[ForeignKey("Id")]
public String RoleId { get; set; }
public virtual AspNetRolesExtendedDetails AspNetRolesExtendedDetails { get; set; }
Это то, что у меня сейчас, но я получаю эту ошибку:
Недопустимый атрибут ForeignKeyAttribute для свойства UserId типа App.AspNetUserRolesExtendedDetails. Свойство навигации 'Id' не найдено в зависимом типе 'App.Models.AspNetUserRolesExtendedDetails'. Значение Name должно быть допустимым именем свойства навигации.