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