На самом деле вы получаете два дополнительных столбца:
RestrictedCategoryId = table.Column<Guid>(nullable: false),
RestrictedCategoryId1 = table.Column<Guid>(nullable: true), // <--
RestrictedCategoryOrderId = table.Column<Guid>(nullable: true) // <--
Очевидно, EF Core Соглашения о внешних ключах не очень хорошо работает с составными ключами, поэтому вы должны явно настроить отношения - аналогично к тому, что вы сделали для других отношений, поскольку ваша модель не имеет соответствующего свойства навигации по коллекции, вы должны использовать HasMany
с аргументом типа generi c и без параметров, например, внутри CategoryConfiguration
:
builder.HasMany<RestrictionCategory>()
.WithOne(cr => cr.RestrictedCategory)
.HasForeignKey(cr => new { cr.RestrictedCategoryId, cr.OrderId})
.OnDelete(DeleteBehavior.NoAction);