Эта проблема возникает из-за того, что при использовании FetchMany
весь набор результатов будет помещен в память, а затем получен указанный поднабор (что-то неэффективное и потенциально опасное).
Очевидно, что нет способа ограничить подмножество перед извлечением при использовании FetchMany
.
Решение состоит в том, чтобы использовать либо JoinQueryOver
, либо JoinAlias
(различия двух обсуждались в других вопросах SO)
Так настойчиво делать
Session.QueryOver<Product>().FetchMany(p=>p.Images).Take(5)
который выдает предупреждение в вопросе, мы делаем
Image image = null;
Session.QueryOver<Product>().Left.JoinQueryOver(x => x.Images, () => image).Take(5)
, который выдает SELECT TOP (5)
запрос