Je viens d'avoir un énorme *blonde moment**, mais il est mis en évidence un désagrément que j'ai avec Entity Framework. J'ai désactivé le chargement paresseux, donc je me force à réfléchir aux données dont j'ai besoin pour garder l'application aussi vite que possible.Entity Framework - Naviguer et inclure des propriétés à travers des collections
Ainsi, afin de renvoyer les données dans une requête, je dois utiliser la méthode Include
:
var query = from item in context.Customers
.Include(x=> x.Orders)
select item
Ceci est bien jusqu'à ce que je veux sélectionner un élément un peu plus profondément dans la hiérarchie. À savoir:
Customer 1-* Orders *-1 Factory 1-1 Factory Type
Pour autant que je sache, la seule façon de retourner toutes ces données avec impatience serait de faire ce qui suit:
Avecvar query = from item in context.Customers
.Include("Orders.Factory.FactoryType")
select item
ce qui précède, je suis incapable de utiliser le System.Data.Entity
Lambdas selon mon premier exemple. Est-ce que quelqu'un sait s'il me manque quelque chose d'évident ici, ou est-ce que je suis bloqué avec l'utilisation de déclarations de chaînes pour mes propriétés de navigation à travers les collections?
Si je n'ai pas collections, je pourrais écrire:
.Include(x=> x.Order.OrderType.Factory.FactoryType) // No bother
Mais à cause de la collection Orders
, il n'y a aucun moyen de parcourir une propriété enfant pour autant que je peux dire (FirstOrDefault
, SingleOrDefault
, etc, ne fonctionnent pas).
** il est juste un tour-de-phrase, je trouve être très friands de blondes *