Mapeo de muchos a muchos relación con referencia de clave externa
Esta debería ser una pregunta simple para el usuario EF bien versado.
Tengo el siguiente esquema (en mi cabeza) de cómo deben verse las relaciones entre las tablas.
[FooBar] [Foo] [Bar]
FooId PK,FK Id PK Id PK
BarId PK,FK BarId FK Name
IsRead Name Description
Description
Aunque, cuando intentogenerar El esquema que usa el código EF primero falla al interpretar las relaciones entre las entidades tal como las he interpretado (agrega una clave externaFooId
al[bar]
tabla) y no logra crear completamente la[FooBar]
mesa de puente
Si alguien pudiera orientarme sobre cómo lograr el esquema anterior utilizando el código EF4, primero lo apreciaría. Si la solución implica atributos en mis modelos de POCO, las configuraciones fluidas o un híbrido de ambos no importan mucho, siempre y cuando se cree el esquema de base de datos deseado.
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; }
}