0

Orchard ユーザーのリストに情報を表示する必要がある状況があります。この場合、GetMany を介して Orchard ユーザーのリストを取得します。

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

(私の場合、 setOfAllNeededUsers は、以前のクエリから取得したユーザー ID の IEnumerable です)

私が直面している問題は、Orchard.Roles モジュールにあります。Orchard.Roles は、ActivatingFilter を User タイプに追加して、ユーザーのロール情報を読み込みます。これは本質的に問題ではありませんが、すべてのユーザーの役割情報の要求は個別に行われます。この情報を取得するために、外部 DB に 20 回、30 回、場合によっては 100 回もクエリを実行することは、まったく実行できません。これらを 1 つのリクエストにバッチ処理する方法はありますか?

注: 私のクエリに対する次の変更は、まったく役に立ちません。

_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 に答える