0
我正在使用实体框架和身份框架(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; }
}
尼科
现在你有一个applicationuser两个键,以及两个一列FK的从国家到ApplicationUser。我不知道如何在数据注释中做到这一点,流利的API它是modelBuilder.Entity()。HasKey(x => new {x.Id,x.Version});和modelBuilder.Entity ().HasRequired(x => x.Chief).WithMany()。HasForeignKey(x => new {x.Chief_Id,x.Chief_Version}); –
DevilSuichiro