Je me demandais simplement si lors du chargement d'une entité qui contient une collection, par ex. un message qui peut contenir 0 -> n Commentaires si vous pouvez définir le nombre de commentaires à renvoyer.Fluid nHibernate Chargement sélectif pour les collections
Au moment où j'ai ceci:
public IList<Post> GetNPostsWithNCommentsAndCreator(int numOfPosts, int numOfComments)
{
var posts = Session.Query<Post>().OrderByDescending(x => x.CreationDateTime)
.Take(numOfPosts)
.Fetch(z => z.Comments)
.Fetch(z => z.Creator).ToList();
ReleaseCurrentSession();
return posts;
}
Est-il possible d'ajouter un saut et prendre aux commentaires pour permettre une sorte de fonctionnalité de pagination sur la collection afin de ne pas charger beaucoup de des choses dont tu n'as pas besoin.
Je suis conscient du chargement paresseux mais je ne veux pas vraiment l'utiliser, j'utilise le modèle MVC et je veux que mon objet revienne des dépôts chargés pour que je puisse ensuite les mettre en cache. Je ne veux pas vraiment que mes vues provoquent des instructions select. Le seul vrai moyen de contourner cela est de ne pas effectuer une extraction sur les commentaires mais d'effectuer une sélection séparée sur les commentaires pour trier par heure de création, puis sélectionner le top 5 par exemple, puis placer le résultat retourné dans le message objet?
Des pensées/liens sur ce serait apprécié.
Merci,
Jon
J'imagine que la jointure requise pour ce que vous recherchez est trop complexe pour NHibernate, il faudrait qu'elle sache comment utiliser un TOP sur les publications et sur les commentaires sous deux sous-sélections séparées, puis les joindre à l'externe –