Orchardcms 果园过滤器可以分批处理吗?

Orchardcms 果园过滤器可以分批处理吗?,orchardcms,orchardcms-1.7,Orchardcms,Orchardcms 1.7,我需要在Orchard用户列表上显示信息。在本例中,我通过GetMany获取Orchard用户列表 _services.ContentManager.GetMany<UserPart>(setOfAllNeededUsers, VersionOptions.Latest, new QueryHints()) \u services.ContentManager.GetMany(所有需要的用户集,版本选项。最新的查询提示()) (在我的例子中,setofallneedUsers是我

我需要在Orchard用户列表上显示信息。在本例中,我通过GetMany获取Orchard用户列表

_services.ContentManager.GetMany<UserPart>(setOfAllNeededUsers, VersionOptions.Latest, new QueryHints())
\u services.ContentManager.GetMany(所有需要的用户集,版本选项。最新的查询提示())
(在我的例子中,setofallneedUsers是我从上一个查询中获得的用户ID的IEnumerable)

我遇到的问题是Orchard.Roles模块。Roles向用户类型添加一个ActivatingFilter,以加载用户的角色信息。这本身不是一个问题,但是每个用户的角色信息请求是单独完成的。查询外部数据库20、30甚至100次以获取此信息是不可行的。有没有一种方法可以将这些批处理到一个请求中

注意:以下对我的查询的修改没有任何帮助:

_services.ContentManager.GetMany<UserPart>(setOfAllNeededUsers, VersionOptions.Latest, new QueryHints().ExpandParts<UserRolesPart>())
\u services.ContentManager.GetMany(一组所有需要的用户,版本选项。最新的查询提示().ExpandParts())

我发现制作了以下修补程序,导致用户角色被延迟加载。我为自己的使用稍微修改了它(目前没有OnInitialized事件,所以我使用了oninitialize),但下一个版本应该内置此修复程序


更准确地说,是用户角色部分的加载导致了问题。我认为这是不可能的。你能详细介绍一下具体的情况吗?因为只有同时列出20/30/100个用户及其角色,您才会发现这是一个问题。@Piedone看到我的答案了吗。Orchard的下一个版本将延迟加载用户角色,而不是急切地加载它们。这解决了我的大部分问题。