Wie nehme ich eifrig die Kind- und Enkelelemente einer Entität zuerst in Entity Framework Code auf?
Stellen drei Entitäten (Kunde, Buch, Autor) im Zusammenhang wie diesem:
Kunde hat viele Bücher
Ein Buch hat einen Autor,
Ich diese Daten verwenden um einen Bericht zu drucken, wie diese:
Customer: Peter
Book: To Kill a Mockingbird - Author: Harper Lee
Book: A Tale of Two Cities - Author: Charles Dickens
Customer: Melanie
Book: The Hobbit - Author: J. R. R. Tolkien
Wenn ich die Abfrage für die Kunden bekomme ich, wie erwartet, eine Reihe von Abfragen der folgenden Art
- Eine Abfrage, um die Kunden
- Eine Abfrage pro Kunde zu bekommen, seine Bücher
- Eine Abfrage pro Buch zu bekommen, dessen Autor
Kann ich reduzieren die Anzahl der Abfragen, indem Sie die Bücher in etwa so:
var Kunden = db.Kunden.Include(c => c.Bücher);
Aber ich weiß nicht, wie das laden der Dritten Stufe (Autor). Wie kann ich das tun?
InformationsquelleAutor der Frage adolfojp | 2011-05-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine überlastung für
Include
akzeptiert eine Zeichenfolge, die kann bezeichnen den vollständigen Pfad zu jedem zusätzlichen Eigenschaften, die Sie benötigen:Sieht es seltsam aus, weil der "Autor" ist nicht eine Eigenschaft, die auf eine Sammlung von Büchern (eher eine Eigenschaft, die auf jedes einzelne Buch), aber es funktioniert. Es geben einen Wirbel.
InformationsquelleAutor der Antwort Matt Hamilton
Auch, es ist nicht notwendig, die Verwendung der string-überlastung. Diese Methode wird auch funktionieren:
Weitere Beispiele finden Sie in der EF-team-blog:
http://blogs.msdn.com/b/adonet/archive/2011/01/31/using-dbcontext-in-ef-feature-ctp5-part-6-loading-related-entities.aspx
Und diesem tutorial:
http://www.asp.net/entity-framework/tutorials/reading-related-data-with-the-entity-framework-in-an-asp-net-mvc-application
InformationsquelleAutor der Antwort tdykstra