0
мне нужно создать обнуляемого внешний ключ для один-ко-многим отношений на одной и той же таблице:EF Fluent API - Nullable FK для один-ко-многим в одной таблице
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; }
}
с Fluent Апи, но я не знаю, какое определение является правильным, это:
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);
Оба правильные. –