我遇到需要在Orchard用户列表上显示信息的情况。在这种情况下,我通过GetMany获取Orchard用户列表。
_services.ContentManager.GetMany<UserPart>(setOfAllNeededUsers, VersionOptions.Latest, new QueryHints())
(在我的例子中,setOfAllNeededUsers是我之前查询中的用户ID的IEnumerable)
我遇到的问题是Orchard.Roles模块。 Orchard.Roles将“ActivatingFilter”添加到“用户”类型以加载用户的角色信息。这本身并不是问题,但是对每个用户的角色信息的请求是单独完成的。查询外部数据库20,30,可能甚至100次以获取此信息是不可行的。有没有办法将这些批处理成一个请求?
注意:对我的查询的以下修改没有任何帮助:
_services.ContentManager.GetMany<UserPart>(setOfAllNeededUsers, VersionOptions.Latest, new QueryHints().ExpandParts<UserRolesPart>())
答案 0 :(得分:0)
我发现以下修补程序使得用户角色懒惰加载。我稍微修改它以供我自己使用(目前没有OnInitialized事件,因此我使用OnInitializing)但是下一个版本应该内置此修复。
https://orchard.codeplex.com/SourceControl/changeset/15e4e27c46542266b9776531b2f8f6ad8749ea0f