Je suis en train de me familiariser avec asp.net mvc et je me demande comment on pourrait aller pour obtenir des données relationnelles à plus d'un niveau de profondeur de l'entité spécifiée dans le de clause. Utilisation du modèle de domaine suivant à titre d'exemple:LINQ Requête pour récupérer plusieurs niveaux de données relationnelles
Un blog contient de nombreux articles. Les messages ont beaucoup de commentaires.
Comment écrire une requête LINQ pour renvoyer des entités au niveau Blog.Posts.Comments?
La seule solution (pas si élégante) que j'ai trouvée était d'utiliser une requête LINQ pour obtenir Blog et Posts, puis un foreach pour obtenir des commentaires.
var blog = (from b in _db.BlogSet.Include("Posts")
select b);
foreach (Post p in blog.Posts)
{
var comments = (from c in _db.CommentSet
where c.PostId = p.Id
select c);
p.Comments = comments;
}
Cela a fonctionné parfaitement et garde le code gentil et propre –
Si je pouvais voter ceci plus je le ferais! Cela fonctionne pour 4 niveaux pour moi: o) –