Возврат ItemStats из Tridion UGC

Мне было интересно, если кто-нибудь может предложить какие-либо указатели на этот. Я пытаюсь вернуть ItemStats из веб-службы Tridion UGC, но получаю следующую ошибку при попытке связать результаты:-

Закрытый тип TridionWebUGC.CDS.ItemStat не имеет соответствующего настраиваемого свойства LastRatedDate.

Пример кода:

WebServiceClient ugcCall2 = new WebServiceClient();
    Uri uri = new Uri("http://new.ugc.service/odata.svc");
    CDS.ContentDeliveryService cds = new CDS.ContentDeliveryService(uri);

var myItemStats = cds.ItemStats.Where(p => p.PublicationId == 68 && p.Id == 17792 && p.Type==16);

Я могу получить комментарии и оценки без проблем. Например

    var myComments = cds.Comments.Where(p => p.ItemId == 17805).OrderBy(p => p.CreationDate);

Это просто ItemStats, которые вызывают у меня проблему. У кого-нибудь есть идеи?

Спасибо

Джон

1 ответ

Решение

К сожалению, метаданные UGC WebService неверны в отношении ItemsStats. Для вас это означает, что метаданные веб-сервиса не раскрывают тот факт, что сущность ItemStat содержит LastRatedDate имущество. Это делает ваши прокси-серверы.NET не осведомленными об этом свойстве и делает ваш запрос неудачным. Чтобы обойти этот дефект у вас есть два варианта:

  1. Добавьте к вашим услугам следующее свойство: cds.IgnoreMissingProperties = true;. Преимущество такого подхода заключается в том, что вы закончите с ним за 2 секунды. Недостатком является то, что вы не сможете получить доступ к этому свойству (если вы действительно используете его);
  2. Измените прокси, сгенерированные Visual Studio, и вручную добавьте это свойство в класс ItemStat. Преимущество такого подхода заключается в том, что вы сможете получить доступ к свойству из вашего проекта. Недостатком является то, что с точки зрения кодирования это абсолютно невозможно, нужно быть осторожным при обновлении или регенерации прокси-серверов, и при добавлении свойства вручную легко ошибиться.

Примечание 1: для доступа к метаданным вашего веб-сервера из браузера вы можете перейти на /odata.svc/$metadata,

Примечание 2: при ближайшем рассмотрении в метаданных webService отсутствуют 2 свойства: LastRatedDate а также LastCommentedDate,

Надеюсь это поможет.

Другие вопросы по тегам