EF не позволяет вам добавлять дубликаты во многие ко многим отношениям. Таблица объединения должна содержать только первичные ключи участвующих таблиц в качестве PK таблицы.
Эту проблему можно обойти, сопоставив таблицу соединения как сущность и создав автоматически идентифицируемый идентификатор в качестве PK таблицы соединения.
public class ProductTransaction
{
[Key]
public int Id { get; set; }
public int ProductId { get; set; }
public int TransactionId { get; set; }
public Product Product { get; set; }
public Transaction Transaction { get; set; }
}
public class Product
{
[Key]
public int Id { get; set; }
public virtual ICollection<ProductTransaction> Transactions { get; set; }
}
public class Transaction
{
[Key]
public int Id { get; set; }
public virtual ICollection<ProductTransaction> Products { get; set; }
}