首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Tridion UGC返回ItemStats

从Tridion UGC返回ItemStats
EN

Stack Overflow用户
提问于 2013-01-30 22:43:38
回答 1查看 123关注 0票数 6

我想知道有没有人能在这个问题上提供一些建议。我尝试从Tridion UGC web服务返回ItemStats,但在尝试绑定结果时遇到以下错误:-

封闭类型TridionWebUGC.CDS.ItemStat没有对应的LastRatedDate可设置属性。

代码的一个例子是:

代码语言:javascript
复制
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);

我可以毫无问题地获得评论和评分。例如。

代码语言:javascript
复制
    var myComments = cds.Comments.Where(p => p.ItemId == 17805).OrderBy(p => p.CreationDate);

只是ItemStats给了我一个问题。有人有什么想法吗?

谢谢

约翰

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-30 23:14:15

不幸的是,关于ItemsStats,UGC WebService的元数据是不正确的。对于您来说,这意味着WebService元数据不会公开ItemStat实体包含LastRatedDate属性的事实。这会使您的.NET代理不知道此属性,并使您的查询失败。要解决此缺陷,您有两种选择:

  1. 将以下属性添加到您的服务:cds.IgnoreMissingProperties = true;。这种方法的优点是你可以在2秒内完成它。缺点是您将无法访问该属性(以防您实际使用它);
  2. 修改由Visual Studio生成的代理,并手动将该属性添加到ItemStat类中。这种方法的优点是,您将能够从您的项目访问该属性。缺点是,从编码的角度来看,它是完全不可管理的,在升级或重新生成代理时需要小心,并且很容易在手动添加属性时出错。

注1:要从浏览器访问webServer的元数据,您可以转到/odata.svc/$metadata

注意2:仔细观察,webService元数据中缺少两个属性:LastRatedDateLastCommentedDate

希望这能有所帮助。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14606657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档