코드 우선 접근 방식으로 Entity Framework 6을 사용하고 있으며 두 엔터티를 동일한 테이블에 배치하려고합니다. 내가 무엇을 잘못하고 있지?
[Table("Review")]
public class Review
{
public int Id { get; set; }
public PictureInfo PictureInfo { get; set; }
public int PictureInfoId { get; set; }
}
[Table("Review")]
public class PictureInfo
{
[Key, ForeignKey("Review")]
public int ReviewId { get; set; }
public Review Review { get; set; }
}
내가 얻는 오류 : 엔터티 유형 'PictureInfo'및 'Review'는 동일한 유형 계층 구조에 없거나 기본 키가 일치하는 유효한 일대일 외래 키 관계가 없기 때문에 'Review'테이블을 공유 할 수 없습니다.
내가 무엇을 잘못하고 있지?
문제는 관계가 일대일이 아닌 일대일로 해석되었다는 것입니다.
int PictureInfoId
검토 끝 의 외래 키 가 필요하지 않거나 무시되었으므로 Null이 아니어도 검토에서 필요한 관계가 종료되지는 않았습니다. 이 불필요한 키를 제거하고 PictureInfo 탐색 속성에 [Required] 속성을 추가하면 문제가 해결되었습니다.
여기에 수정 된 리뷰 클래스가 있습니다.
[Table("Review")]
public class Review
{
public int Id { get; set; }
[Required]
public PictureInfo PictureInfo { get; set; }
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다