В соответствии с соглашением по умолчанию EF создает свойство как свойство внешнего ключа, когда его имя совпадает со свойством первичного ключа связанной сущности.Атрибут [ForeignKey] переопределяет соглашение по умолчанию для внешнего ключа. Он позволяет нам указать свойство внешнего ключа в зависимом объекте, имя которого не совпадает со свойством первичного ключа основного объекта.
Использовать код ниже: -
public class UserRole : IdentityUserRole<int>
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public override int RoleId { get; set; }
public override int UserId { get; set; }
[ForeignKey("RoleId")] // Specify ForeignKey Column Name
public virtual Role Role { get; set; }
[ForeignKey("UserId")] // Specify ForeignKey Column Name
public virtual User User { get; set; }
}
ИЛИ Вы можете использовать: -
public class UserRole : IdentityUserRole<int>
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[ForeignKey("Role")] // Specify Table name on Property
public override int RoleId { get; set; }
[ForeignKey("User")] // Specify Table name on Property
public override int UserId { get; set; }
public virtual Role Role { get; set; }
public virtual User User { get; set; }
}