Fetch vs FetchMany im NHibernate Linq-Anbieter

74

Das eifrige Laden von NHibernate kann mit Fetchund erfolgen FetchMany, wie in NHibernate Linq Eager Fetching auf Mike Hadlows Blog beschrieben.

Was ist der Unterschied zwischen diesen beiden Methoden und unter welchen Umständen würde jede angewendet?

Simon
quelle

Antworten:

106

Fetchsollte für Referenzen und FetchManyfür Sammlungen verwendet werden.

Dies ist besonders wichtig , weil nur FetchManymit kombiniert werden , ThenFetchManyum „Enkel“ Sammlungen zu holen.

Beispiel:

session.Query<User>()
       .FetchMany(u => u.Orders)
       .ThenFetchMany(o => o.OrderItems)
Diego Mijelshon
quelle
5
Gibt es ein Problem bei der Verwendung von Fetch () für Sammlungen, wenn Sie nicht planen, ThenFetch () danach aufzurufen?
Henriksen
@Diego Mijelshon, da sowohl Fetch als auch FetchMany funktionieren, was ist der Unterschied?
Hardywang
2
@hardywang: wie sie verkettet werden können, um mehr Level zu erreichen. Schauen Sie sich einfach die Methodensignaturen an.
Diego Mijelshon