0

我有一种情况,我需要在 Orchard 用户列表上显示信息。在这种情况下,我通过 GetMany 获取 Orchard 用户列表。

_services.ContentManager.GetMany<UserPart>(setOfAllNeededUsers, VersionOptions.Latest, new QueryHints())

(在我的情况下,setOfAllNeededUsers 是我从上一个查询中获得的用户 ID 的 IEnumerable)

我遇到的问题是 Orchard.Roles 模块。Orchard.Roles 为 User 类型添加了一个 ActivatingFilter 来为用户加载角色信息。这本质上不是问题,但是每个用户对角色信息的请求都是单独完成的。查询外部 DB 20、30,甚至可能 100 次以获取此信息是行不通的。有没有办法将这些批处理成一个请求?

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

_services.ContentManager.GetMany<UserPart>(setOfAllNeededUsers, VersionOptions.Latest, new QueryHints().ExpandParts<UserRolesPart>())
4

1 回答 1

0

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

https://orchard.codeplex.com/SourceControl/changeset/15e4e27c46542266b9776531b2f8f6ad8749ea0f

于 2013-10-22T19:33:03.043 回答