1

Entity Framework 사용 : 코드 먼저 기본 클래스의 탐색 속성을 사용하여 컬렉션 탐색 속성을 정의하려고합니다.상속을 사용하여 컬렉션 탐색 속성

개체 구조 :

public class Content 
{ 
    public int ID { get; set; } 
    public ModerationStatuses ModerationStatus { get; set; } 
    public ContentItemTypes ContentType { get; set; } 
    public virtual User Author { get; set; } 
} 

public class Image : Content 
{ 
    public Image() 
     : base() 
    { 
     ContentType = ContentItemTypes.Image; 
    } 
    public string FileName { get; set; } 
    public string Location { get; set; } 
    public int DisplayOrder { get; set; } 
    public long FileSize { get; set; } 
} 

public class User 
{ 
    public int UserID { get; set; } 
    public string Username { get; set; } 

    public virtual ICollection<Image> Images { get; set; } 
} 

상황 OnModelCreating :

데이터베이스가 생성됩니다
modelBuilder.Entity<Content>() 
    .Map(i => i.ToTable("Content")); 

modelBuilder.Entity<Image>() 
    .Map(i => i.ToTable("Images")); 

, 그것은 대신 내용 테이블에 Author_UserID을 사용하는 이미지 테이블에 User_UserID 외래 키 제약 조건을 만듭니다.

ICollection<Image> 탐색 속성의 Content.Author_UserID 필드를 외래 키로 인식하도록하려면 어떻게해야합니까?

답변

1

불가능합니다. Author 속성을 Content에서 Image 클래스 또는으로 이동해야합니다. 컬렉션을 만듭니다. 역 네비게이션 속성이 참조하는 엔티티 클래스에서 네비게이션 속성은 항상 으로 선언되어야합니다. 기본 엔티티에서 상속 될 수 없습니다.

0

실제로 가능합니다 ... Content 클래스에 탐색 속성을 추가하면 매핑 할 참조가 있습니다.

여기는 철저한 walkthrough입니다.