Я пытаюсь запросить набор форумов (форумов) для клубов пользователя, чтобы получать последние темы и ответы на этих форумах. Это код, который я использую:
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
Как подсказал Магнус, я поменял свой QueryHandler.GetQueryResult
на звонок ForumHandler.GetQueryResult
, но, похоже, это ничего не изменило. Я также обрезал параметры до GetQueryResult
, так что теперь моя строка кода:
MessageCollection topics = ForumHandler.GetQueryResult(topicQuery);
но это все равно дает мне исключение NullReferenceException. Это наводит меня на мысль, что проблема не в методе GetQueryResult того обработчика, который я вызываю, а в объекте topicQuery
, так как он до сих пор оставался неизменным. Мне интересно, если мне не хватает свойства, которое нужно установить для объекта TopicQuery
.
Обновление 4/11/2010
Есть ли здесь «контекст безопасности», который требует рассмотрения? то есть запрос должен выполняться в контексте пользователя, который имеет полный доступ ко всем форумам?