1

나는 다음과 같은 모델의 엔티티 프레임 워크 5.0에 FluentAPI를 사용하여 복합 객체를 매핑하는 것을 시도하고있다 :유창함 API지도 복합 패턴 객체

public class Category 
{ 
    public int CategoryId { get; set; } 
    public string CategoryName { get; set; } 
    public virtual ICollection<Category> Children { get; set; } 
} 

지금까지와 같은 잘 작동하지 않았다 많은 방법을 시도 다음 :

HasKey(t => t.CateroryId); 
HasOptional(c => c.Children) 
    .WithMany() 
    .HasForeignKey(c => c.CateroryId); 

나는 어떻게 생각 하나?

답변

3

내가 무엇을 할 것인지 이해했다면 Category은 많은 카테고리를 어린이로 가질 수 있습니다.

이전에는 비슷한 외래 키 매핑과 몇 가지 추가 속성을 사용하여이 작업을 수행했지만 독립 연관을 사용하여 수행 할 수도 있습니다.

public class Page 
{ 
    public int CategoryId { get; set; } 
    public string CategoryName { get; set; } 
    public int? ParentID { get; set; } // Nullable (Parent is optional). 

    // Navigation properties 
    public virtual Category Parent { get; set; } // Optional Parent 
    public virtual ICollection<Category> Children { get; set; } 
} 

그런 다음 (당신의 매핑 설정 위치에 따라)과 같이 구성 할 수 있어야한다 : 그래서 우리는 부모/자식 관계를 추적 할 수 있습니다 Category에 추가 속성을 추가

this.HasMany(c => c.Children)  // Many Children 
    .WithOptional(c => c.Parent)  // Optional Parent 
    .HasForeignKey(x => x.ParentID);