Coluna Múltipla do Entity Framework como Chave Primária por Fluent Api

Estas são as minhas classes de domínio simplificadas.

public class ProductCategory
{
    public int ProductId { get; set; }
    public int CategoryId { get; set; }

    public virtual Product Product { get; set; }
    public virtual Category Category { get; set; }
}

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
} 

public class Category
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int? ParentCategoryId { get; set;} 
} 

Esta é minha classe de mapeamento. Mas isso não funciona.

public class ProductCategoryMap : EntityTypeConfiguration<ProductCategory>
{
    public ProductCategoryMap()
    {
        ToTable("ProductCategory");
        HasKey(pc => pc.ProductId);
        HasKey(pc => pc.CategoryId);
    }
}

Como devo mapear essas classes para fornecer, para que um produto possa ser visto em várias categorias?

questionAnswers(2)

yourAnswerToTheQuestion