Fetch проти FetchMany у постачальнику NHibernate Linq


74

Нетерпляче завантаження NHibernate можна здійснити за допомогою Fetchта FetchMany, як описано в NHibernate Linq Eager Fetching у блозі Майка Хедлоу.

У чому різниця між цими двома методами та за яких обставин застосовуватиметься кожен?

Відповіді:


106

Fetchслід використовувати для посилань та FetchManyдля колекцій.

Це особливо важливо, оскільки FetchManyїх можна поєднувати лише ThenFetchManyдля отримання колекцій "онуків".

Приклад:

session.Query<User>()
       .FetchMany(u => u.Orders)
       .ThenFetchMany(o => o.OrderItems)

5
Чи є проблема з використанням Fetch () у колекціях, якщо ви не плануєте викликати ThenFetch () потім?
henriksen 02

@Diego Mijelshon, оскільки і Fetch, і FetchMany працюють, у чому різниця?
hardywang

2
@hardywang: спосіб, яким їх можна прикувати, щоб отримати більше рівнів. Просто подивіться на підписи методу.
Дієго Міджельшон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.