0

:EF 유창함 API -에 대한 null 허용 FK 일대 같은 테이블에 내가 같은 테이블에 일대 다 관계에 대한 널 (NULL) 외래 키를 만들 필요가

public class NavigationMenu 
{ 

    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int Id { get; set; } 

    public NavigationMenu() 
    { 
     MenuChildren = new HashSet<NavigationMenu>(); 
    } 

    public string Text { get; set; } 
    public string Action { get; set; } 
    public string Controller { get; set; } 
    public string Icon { get; set; } 
    public bool Selected { get; set; } 

    public int? NavigationMenuId { get; set; } 

    public virtual ICollection<NavigationMenu> MenuChildren { get; set; } 

    public virtual NavigationMenu NavigationMenus2 { get; set; } 

} 

유창함 API 광고하지만 난과 함께 정의가 정확한지 모르는이 :

modelBuilder.Entity<NavigationMenu>() 
      .HasOptional(c => c.NavigationMenus2) 
      .WithMany(c => c.MenuChildren) 
      .HasForeignKey(c => c.NavigationMenuId); 

나 :

modelBuilder.Entity<NavigationMenu>() 
      .HasMany(e => e.MenuChildren) 
      .WithOptional(e => e.NavigationMenus2) 
      .HasForeignKey(e => e.NavigationMenuId); 
+0

둘 다 맞습니다. –

답변

1

모두, hasMany의 관계를 의미하는 올바른있을 수 b된다 어떤 관련 객체라도 0이 될 수 있습니다. (null 허용 FK는 유효합니다)

일대일 관계의 경우, 선택적인지 여부는 명시 적으로 기술해야합니다.