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; }
}