System.InvalidOperationException: с пропущенной навигацией «FurnitureItem.HandItems» не связан внешний ключ. Для каждой навигации по пропуску должен быть настроен внешний ключ.
Настройка
Настройка:
Код: Выделить всё
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"));
Код: Выделить всё
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; } = [];
}
- furniture_items
- hand_items
- furniture_hand_items (стол-мост)
Подробнее здесь: https://stackoverflow.com/questions/784 ... eign-key-a