Mapeando muitos para muitos relacionamentos com referência de chave estrangeira

Esta deve ser uma pergunta simples para o usuário bem versado da EF.

Eu tenho o seguinte esquema (na minha cabeça) de como as relações entre as tabelas devem ser.

[FooBar]      [Foo]          [Bar]

FooId PK,FK   Id PK          Id PK
BarId PK,FK   BarId FK       Name
IsRead        Name           Description
              Description    

Embora, quando tentogerar o esquema usando código-FE primeiro ele falha em interpretar os relacionamentos entre as entidades como eu os interpretei (adiciona chave estrangeiraFooId ao[bar] tabela) e falha em criar totalmente[FooBar] mesa de ponte.

Se alguém pudesse me orientar sobre como alcançar o esquema acima usando o primeiro código EF4, eu agradeceria. Se a solução envolve atributos em meus modelos POCO, configurações fluentes ou um híbrido de ambos não importa muito - desde que o esquema de banco de dados desejado seja criado.

Modelos POCO:

public class Foo
{
    public int Id { get; set; }
    public string Text { get; set; }
    public string Description { get; set; }
    public int BarId { get; set; }

    public Bar Bar { get; set; } /* bar entity */

    public virtual ICollection<Bar> BridgedBars { get; set; }

    public Foo()
    {
        Bars = new List<Bar>();
    }
}

public class Bar
{
    public int Id { get; set; }
    public string Text { get; set; }
    public string Description { get; set; }

    public virtual ICollection<Foo> Foos { get; set; }
    public virtual ICollection<Foo> BridgedFoos { get; set; }

    public Bar()
    {
        Foos = new List<Foo>();
        BridgedFoos = new List<Foo>();
    }
}

public class FooBar
{
    public int FooId { get; set; }
    public int BarId { get; set; }

    public virtual Foo Foo { get; set; }
    public virtual Bar Bar { get; set; }

    public bool IsRead { get; set; }
}

questionAnswers(1)

yourAnswerToTheQuestion