0
저는 Entity Framework 및 ID 프레임 워크 (IdentityUser
, IdentityRole
)를 사용하고 있습니다. Users
테이블을 가리키는 복합 키 (테이블 Country
)가있는 테이블이 있습니다. 모든 키가 동일한 경우ID 프레임 워크 복합 키
불행하게도, EF는 그렇지 않으면 당신이를 얻을 수 있습니다, 관계를 구축 할 수 있습니다 :
관계 제약에 종속와 교장 역할의 속성의 수는 동일해야합니다.
그래서 어떻게 처리 할 수 있습니까? 지금은이 합성 키를 ApplicationUser:IdentityUser
에 추가하려고 시도했지만이 방법으로 사용자 인터페이스, 역할, 클레임, 로그인 등 모든 엔터티에 복합 키를 추가해야합니다. 여기
nameof(Chief)
에
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; }
}
니코
도움이 될 또 다른 질문이며,이 하나의 열 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