0

다음 CodeFirst 클래스가 있습니다. TPT 구조를 모델링하려고합니다. 사용자는 개인 프로필이나 회사 프로필에 로그인하여 액세스 할 수 있습니다. IndividualCompany은 다른 테이블과 다형성 연관이 있습니다.Entity Framework에서 동일한 외래 키를 사용하는 테이블 형식 및 다중 연결 CodeFirst

public class LoginDetail 
{ 
     public int Id { get; set; } 
     //Other Properties 

     public virtual Individual Individual { get; set; } 
     public virtual ICollection<Company> Companies{ get; set; } 
} 

public abstract class Profile 
{ 
     public int Id { get; set; } 
     //Other Properties 
     public virtual int LoginId { get; set; } 
     public virtual LoginDetail Login{ get; set; } 
} 

[Table("Individuals")] 
public class Individual : Profile 
{ 
     //Other Properties 
} 

[Table("Companies")] 
public class Company: Profile 
{ 
     //Other Properties 
} 

LoginDetails, Profiles, IndividualsCompanies 테이블에 매핑됩니다. 모든 것은 잘 작동하지만 LoginDeatilsCompanies 사이에 일대 다 관계를 연결하기 위해 LoginDetail_IdCompanies 테이블에 추가로 만듭니다. 이것은 내 모델의 다른 부분을 손상시킵니다. 내가 어떻게 LoginDeatilsCompanies

답변

0
당신이 InverseProperty 및 외래 키 속성을 사용한다

,

사이 LoginDeatilsIndividuals와 일 대 일 관계 사이의 일대일 관계를 모두 ProfilesLoginId를 사용하는 엔티티 프레임 워크를 알 수 있습니까

이 코드를 사용해보십시오.

public class LoginDetail 
{ 
    public int Id { get; set; } 
    //Other Properties 

    public virtual Individual Individual { get; set; } 

    [InverseProperty("Login")] 
    public virtual ICollection<Profile> Profiles{ get; set; } 
} 


public abstract class Profile 
{ 
    public int Id { get; set; } 
    //Other Properties 
    public virtual int LoginId { get; set; } 

    [InverseProperty("Profiles")] 
    [ForeignKey("LoginId")] 
    public virtual LoginDetail Login{ get; set; } 
}