У меня возникла ситуация, когда мне нужно отобразить информацию о списке пользователей Orchard. В этом случае я получаю список пользователей Orchard через метод GetMany.
_services.ContentManager.GetMany<UserPart>(setOfAllNeededUsers, VersionOptions.Latest, new QueryHints())
(В моем случае setOfAllNeededUsers — это IEnumerable идентификаторов пользователей, которые у меня были из предыдущего запроса)
Проблема, с которой я сталкиваюсь, связана с модулем Orchard.Roles. Orchard.Roles добавляет ActivatingFilter к типу User для загрузки сведений о роли для пользователя. Это не является проблемой по своей сути, однако запросы информации о роли для каждого пользователя выполняются индивидуально. Запрашивать внешнюю БД 20, 30, возможно, даже 100 раз, чтобы получить эту информацию, просто невозможно. Есть ли способ объединить их в один запрос?
ПРИМЕЧАНИЕ. Следующая модификация моего запроса никак не помогает:
_services.ContentManager.GetMany<UserPart>(setOfAllNeededUsers, VersionOptions.Latest, new QueryHints().ExpandParts<UserRolesPart>())