Mapeando tabelas de associação no código EF 4.1 primeiro

Não sei ao certo como mapear as tabelas a seguir abaixo emEF 4.1 code first e quais objetos eu preciso para representar as tabelas. Como recupero uma lista das especificações do produto?

Atualmente, só tenho umProduct classe

Products Table:
Id
Name
IsActive

ProductSpecification Table:
ProductId
SpecificationId

Specifications Table:
Id
Name
IsActive

ProductSpecifications é uma tabela de associação. Eu também tenho o seguinte definido na minha classe de contexto:

public DbSet<Product> Products { get; set; }

EDITA

Por favor, veja minha postagem original atualizada. Alterei o ID das tabelas de produtos e especificações.

Na minha classe de contexto, tenho o seguinte:

public DbSet<Product> Products { get; set; }
public DbSet<Specification> Specifications { get; set; }

No meu repositório, tenho o seguinte:

public Product GetById(int id)
{
     return db.Products
          .Include("Specifications")
          .SingleOrDefault(x => x.Id == id);
}

MinhasProduct class (parcial):

public class Product : IEntity
{
     public int Id { get; set; }
     public string Name { get; set; }
     public bool IsActive { get; set; }
     public ICollection<Specification> Specifications { get; set; }
}

MinhasSpecification class:

public class Specification : IEntity
{
     public int Id { get; set; }
     public string Name { get; set; }
     public bool IsActive { get; set; }
     public ICollection<Product> Products { get; set; }
}

Isso foi tudo o que fiz com a resposta de Slauma. Não fiz o mapeamento manualmente como ele disse que eu deveria, mas primeiro preciso entender o seguinte:

Dadas minhas classes e tabelas acima, o que exatamente as convenções de nomenclatura EF 4.1 indicam sobre como ele lida com tabelas de associação? O motivo pelo qual pergunto é porque recebo o seguinte erro no meu método GetById:

Invalid object name 'dbo.SpecificationProducts'.

EDIT 2

Esqueci de mencionar o seguinte :) Um produto pode ter uma altura de especificação como valor. E para esta altura, preciso especificar um valor. Como 100 polegadas. Então, modifiquei a tabela ProductSpecifications para ter uma coluna de valor chamadaSpecificationValue, esta coluna conterá o valor 100 polegadas. Como eu modificaria o código para recuperar esse valor também? Preciso exibi-lo na minha opinião.

questionAnswers(1)

yourAnswerToTheQuestion