ユーザーのクラブの一連のフォーラム (fora?) にクエリを実行して、それらのフォーラムで最新のトピックと返信を取得しようとしています。これは私が使用しているコードです:
RoomCollectionCriterion userClubRoomsCollection = new RoomCollectionCriterion();
foreach (Club userClub in userClubCollection)
{
RoomCriterion userClubRoomCriterion = new RoomCriterion();
userClubRoomCriterion.ID = new IntegerCriterion();
userClubRoomCriterion.ID.Value = userClub.ForumRoom.ID;
userClubRoomsCollection.Criteria.Add(userClub.Name, userClubRoomCriterion);
}
TopicQuery topicQuery = new TopicQuery();
topicQuery.Room = new RoomCriterion();
// Pass in our collection of the user's clubs to the query
topicQuery.Room.Rooms = userClubRoomsCollection;
MessageCollection topics = QueryHandler.GetQueryResult<EPiServer.Community.Forum.Topic, MessageCollection>(topicQuery, pageNumber, 2);
MessageCollection replies = QueryHandler.GetQueryResult<EPiServer.Community.Forum.Topic, MessageCollection>(topicQuery, pageNumber, 4);
私が抱えている問題は、 への最初の呼び出しをヒットするたびGetQueryResult
にNullReferenceException
. 私が渡そうとしているものに間違っている/欠けているものは何も見えませんがGetQueryResult
、他の誰かが以前にこれを行っており、これに対する修正を提案できることを願っています.
更新 26/10/2010
Magnus が提案したように、私は自分QueryHandler.GetQueryResult
の電話を への電話に交換しましたForumHandler.GetQueryResult
が、これは違いを生んでいないようです。GetQueryResult
また、コード行が次のようになるようにパラメーターを切り詰めました。
MessageCollection topics = ForumHandler.GetQueryResult(topicQuery);
しかし、これでも NullReferenceException が発生します。これは、私が呼び出しているハンドラーの GetQueryResult メソッドに問題があるのではなく、topicQuery
オブジェクトにあることを示唆しています。オブジェクトに設定する必要があるプロパティがないかどうか疑問に思っていTopicQuery
ます。
Update 4/11/2010
ここで考慮が必要な「セキュリティ コンテキスト」はありますか? つまり、すべてのフォーラムに完全にアクセスできるユーザーのコンテキストでクエリを実行する必要がありますか?