2009-04-30 13 views
3

Ich versuche, eine einfache Aufgabe zum Erstellen einer Datenbank mit 2 Tabellen mit einer 1: * - Beziehung zu erreichen.Fehlerbehebung ADO.NET Entity Framework und 1: * Beziehungen

In einer Tabelle (Foos) Ich habe

Id 
... 
... 

In den anderen (Bars) Ich habe

Id 
FooId 
... 
... 
... 

ich von Bars zu Foos eine Fremdschlüsselbeziehung erstellt mit der Foriegn Schlüsseltabelle zu sein Balken, die auf die FooId-Spalte zeigen, und die Primärschlüsseltabelle, bei der Foos auf die ID-Spalte zeigt.

Ich erstellte dann mein ADO.NET Entity-Datenmodell und es richtig die Foos und Bars Tabellen und die Beziehung und erstellt die Navigationseigenschaften.

Nun aus meiner MVC-Anwendung versuche ich, wie dies ein Foo zu erhalten:

var foo = (from f in _db.Foos where f.Id == id select f).FirstOrDefault(); 

Dann versuche ich, die Bars Eigenschaft des foo-Objekt zuzugreifen und keine Ergebnisse zu erhalten. Wenn ich jedoch das _db.Bars-Set inspiziere, sehe ich die Bars mit der FooId auf die richtige ID gesetzt.

Was kann ich tun, um zu beheben, warum die Beziehung nicht funktioniert? Ich habe viele Tutorials und die Dokumentation in MSDN für Tabellenbeziehungen angeschaut, aber offensichtlich ist nichts falsch.

Ich versuche, dies in einer ASP.NET MVC-Anwendung zu verwenden, falls dies relevant ist.

Antwort

4

Verwendung einer Einschluss- auf der Foos Tabelle

var foo = (von f in _db.Foos.Include ("Bars"), wo f.Id == id wählen f) .FirstOrDefault();

+0

Danke, das hat gut funktioniert. Ich denke, dass ich an Ruby on Rails gewöhnt bin, wo man nicht explizit aufgefordert wurde, die zugehörigen Tabellen zu laden. –

Verwandte Themen