Составной первичный ключ в таблице БД для связи many-to-many

Полученная бд с помощью Entity Framework

В процессе изучения подхода CodeFirst в EF столкнулся с проблемой. Итак я хочу добавить в поле BoardGameOrder поле Quantity, которое будет отвечать за количество приобретенных товаров, но EF не дает создать миграцию если я пытаюсь создать таблицу без PK. А можно ли вообще сделать это, если да, то с помощью чего? На изображении ниже желаемый результат, поле Quantity в таблицу BoardGameOrder было добавлено путем добавления в субд. Заранее благодарю за ответы!

Блок кода модели BoardGame

    public class BoardGame
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public decimal Cost { get; set; }
        public int MinPlayers { get; set; }
        public int MaxPlayers { get; set; }
        public Studio Studio { get; set; }
        public ICollection<Genre> Genres { get; set; }
        public ICollection<Order> BoardGames { get; set; }
        public BoardGame()
        {
            Genres = new List<Genre>();
            BoardGames = new List<Order>();
        }
    }

Блок кода модели Order

public class Order
    {
        public int Id { get; set; }
        public string Status { get; set; }
        public ICollection<BoardGame> Orders { get; set; }
        public Order()
        {
            Orders = new List<BoardGame>();
        }

    }

Желаемый результат


Ответы (1 шт):

Автор решения: Arkadiy

Помог комментарий с ссылкой отправленный Alexander Petrov, выражаю огромную благодарность.

protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<BoardGame>()
                .HasMany(p => p.Orders)
                .WithMany(p => p.BoardGames)
                .UsingEntity<BoardGameOrder>(
                    j => j
                        .HasOne(pt => pt.Order)
                        .WithMany(t => t.BoardGameOrders)
                        .HasForeignKey(pt => pt.OrderId),
                    j => j
                        .HasOne(pt => pt.BoardGame)
                        .WithMany(p => p.BoardGameOrders)
                        .HasForeignKey(pt => pt.BoardGameId),
                    j =>
                    {
                        j.Property(pt => pt.Quantity).HasDefaultValue(1);
                        j.HasKey(t => new { t.BoardGameId, t.OrderId });
                    });
        }

    public class BoardGameOrder
    {
        public int BoardGameId { get; set; }
        public BoardGame BoardGame { get; set; }
        public int OrderId { get; set; }
        public Order Order { get; set; }
        public int Quantity { get; set; }

    }
→ Ссылка