我正在使用实体框架和身份框架(IdentityUser
,IdentityRole
)。我有一个表,其中包含指向Country
表的复合键(表Users
)。
不幸的是,EF只能在所有键都相同的情况下建立关系,否则你会得到这个:
关系约束中的从属角色和主要角色中的属性数必须相同。
那么,我该如何处理呢?现在我也尝试将这个复合键添加到ApplicationUser:IdentityUser
,但是这样我就必须将复合键添加到身份框架的所有实体(这意味着用户,角色,声明,登录,...... )。
以下是我的模型类:
class Country
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Column(Order = 1)]
public int ID { get; set; }
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Column(Order = 2)]
public int Version { get; set; }
[Required]
[ForeignKey(nameof(Chief))]
[Column(Order = 1)]
public string Chief_Id { get; set; }
[Required]
[ForeignKey(nameof(Chief)), Column(Order = 2)]
public int Chief_Version { get; set; }
public virtual ApplicationUser Chief{ get; set; }
}
class ApplicationUser : IdentityUser
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Column(Order = 1)]
public override string Id
{
get { return base.Id; }
set { base.Id = value; }
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Column(Order = 2)]
public int Version { get; set; }
}
尼科