Oui ... il suffit de régler le fetchmode correct.
je rajouterais par exemple dans une minute.
Exemple pris from here =>
IList cats = sess.CreateCriteria(typeof(Cat))
.Add(Expression.Like("Name", "Fritz%"))
.SetFetchMode("Mate", FetchMode.Eager)
.SetFetchMode("Kittens", FetchMode.Eager)
.List();
Vous pouvez spécifier à l'enfant de charge désireux de l'enfant trop =>
.SetFetchMode("Kittens.BornOn", FetchMode.Eager)
Si vous utilisez LINQ to NHibernate, utiliser la méthode Expand =>
var feedItemQuery = from ad in session.Linq<FeedItem>().Expand("Ads")
where ad.Id == Id
select ad;
Et je recommanderais d'utiliser la méthode helper qui crée une chaîne à partir de l'expression lambda.
Très probablement qu'il est possible de dire à Criteria de charger l'arbre entier. Mais je ne suis pas au courant à ce sujet et je préfère préciser ce dont j'ai exactement besoin (semble dangereux de tout charger).
Est-ce que this aide?
Je sais que je peux charger des collections liées à une entité en utilisant FetchMode, mais je veux charger l'arbre entier, pas seulement le niveau suivant. Utilisation de votre approche que je ferais: .SetFetchMode ("Enfants", FetchMode.JOIN) .SetFetchMode ("Children.Children", FetchMode.JOIN) .SetFetchMode ("Children.Children.Children", FetchMode.Join) etc – Argons