Zuordnung von vielen zu vielen Beziehungen mit Fremdschlüsselreferenz

Dies sollte eine einfache Frage für den erfahrenen EF-Benutzer sein.

Ich habe das folgende Schema (in meinem Kopf), wie die Beziehungen zwischen den Tabellen aussehen sollten.

[FooBar]      [Foo]          [Bar]

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

Aber wenn ich es versuchegenerieren Das Schema verwendet EF-Code. Zuerst werden die Beziehungen zwischen den Entitäten nicht so interpretiert, wie ich sie interpretiert habe. (Fügt einen Fremdschlüssel hinzu.)FooId zum[bar] Tabelle) und kann das nicht vollständig erstellen[FooBar] Brückentisch.

Wenn mich jemand anleiten könnte, wie man das obige Schema mit EF4 Code-First erreicht, würde ich es begrüßen. Ob die Lösung Attribute in meinen POCO-Modellen, flüssige Konfigurationen oder eine Mischung aus beiden umfasst, spielt keine Rolle - solange das gewünschte Datenbankschema erstellt wird.

POCO-Modelle:

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage