为什么odata pagecontent.content Field Null?它在经纪人数据库中具有数据



我正在使用下面的linq语句来返回页面。页面返回,内容字段在DB中填充,但内容在ODATA响应中为无效。有什么想法吗?

     var pages = (from p in cds.PageContents
                 where p.PublicationId == 20 && p.PageId == 1397
                 select p).ToList<SDLODataClient.SDLOData.PageContent>();
    foreach (SDLODataClient.SDLOData.PageContent p in pages)
    {
        txtOutput.InnerHtml += p.Content;
    }

如果您实际上在代理数据库中拥有所有所需的数据,则您的代码完美工作。代码无法正常工作的唯一情况是:您的网络服务没有正确的配置,或者当您在经纪人数据库中没有Pagemeta时(请使用Publication_ID = 20和item_reference and item_reference and item_reference_id选中Pagemeta= 1397)或当您没有经纪人数据库中的pagecontent时(检查page_content表的pake_content for publication_id = 20 and page_id = 1397)。

您可以做的最简单的测试是尝试通过在浏览器中访问" .../odata.svc/pagectents(pageID = 1397,publicationId = 20)"来自己访问该条目。如果此URL不起作用,则需要将ODATA Web服务记录设置为调试(Check LogBack.xml)并搜索与页面/查询有关的错误消息。

希望这会有所帮助。

这是我的CD_STORAGY_CONF.XML配置文件的问题。一切都应该指向经纪人DB,但是一个项目映射的定义如下:

<Item typeMapping="Page" cached="false" storageId="defaultFile"/

所以ODATA服务不是在正确的位置。

最新更新