FluentAPI를 사용하여 몇 가지 테이블을 매핑하는 것과 관련하여 문제를 해결하는 방법에 대해 조언 할 수 있는지 궁금했습니다.비정상적인 테이블 관계 매핑
ID 이라는 키가있는 상위 테이블이 있습니다. 그런 다음 idB가 두 개 필드 인 idA & 인 하위 테이블이 있습니다.
상위 테이블의 기본 키가 idA 또는 idB 중 하나에 연결되며 둘 다에 연결되지 않습니다.
public Parent()
{
this.ChildA = new HashSet<Child>();
this.ChildA = new HashSet<Child>();
}
public virtual ICollection<Child> ChildA { get; set; }
public virtual ICollection<Child> ChildB{ get; set; }
}
public Child()
public virtual Parent parent { get; set; }
}
레거시이며 변경할 수 없기 때문에 관계/테이블 디자인에 대해 할 수있는 일이 많습니다. 이 문제를 설명하기 위해 올바른 FluentAPI를 이해하기 만하면됩니다. 내가
modelBuilder.Entity<Child>().HasRequired<Parent>(p => p.parent).WithMany(q => q.childs).HasForeignKey(r => r.idA);
modelBuilder.Entity<Child>().HasRequired<Parent>(p => p.parent).WithMany(q => q.childs).HasForeignKey(r => r.idB);
자식 테이블에 PK가 전혀 없습니다. 이 어리석은 참조 두통. 고맙습니다. 좋은 결과를 주겠다. 정말로 도움을 주셔서 감사합니다. –