System.InvalidOperationException: с пропущенной навигацией «FurnitureItem.HandItems» не связан внешний ключ. Для каждой навигации по пропуску должен быть настроен внешний ключ.
Настройка
public class FurnitureItem
{
public int Id { get; init; }
public string? Name { get; init; }
public ICollection HandItems { get; init; } = [];
}
public class HandItem
{
[Key] public int Id { get; set; }
public string Name { get; set; }
public ICollection FurnitureItems { get; init; } = [];
}
System.InvalidOperationException: с пропущенной навигацией «FurnitureItem.HandItems» не связан внешний ключ. Для каждой навигации по пропуску должен быть настроен внешний ключ. Настройка
Настройка: [code]modelBuilder.Entity() .HasMany(c => c.HandItems) .WithMany(x => x.FurnitureItems) .UsingEntity("furniture_hand_items", l => l.HasOne(typeof(FurnitureItem)).WithMany().HasForeignKey("furniture_item_id").HasPrincipalKey(nameof(FurnitureItem.Id)), r => r.HasOne(typeof(HandItem)).WithMany().HasForeignKey("hand_item_id").HasPrincipalKey(nameof(HandItem.Id)), j => j.HasKey("furniture_item_id", "hand_item_id")); [/code] Объекты: [code]public class FurnitureItem { public int Id { get; init; } public string? Name { get; init; } public ICollection HandItems { get; init; } = []; }
public class HandItem { [Key] public int Id { get; set; } public string Name { get; set; } public ICollection FurnitureItems { get; init; } = []; } [/code] Столы: [list] [*]furniture_items [*]hand_items [*]furniture_hand_items (стол-мост) [/list]