我有一个页面,它使用分层查看器和内容过滤器来过滤两种页面类型,一种是容器,另一种是叶页。容器页类型没有字段,页面有几个字段。在分层查看器/内容筛选器/列中,我将显式列出几个要返回的列,因为这有助于性能。
我们正在升级从Kentico 8.2到Kentico 9。在8.2站点,这个页面正在工作。在9站点中,它现在抛出一个异常,上面写着“无效列名”。如果我删除列列表(默认情况下允许Kentico返回所有列),它将再次工作。性能不太明显,所以这是一个可行的选择。然而,我想知道为什么这在肯蒂科9号没有发挥作用。
默认情况下,当返回所有列时,如果某个列在页面类型上不可用,Kentico将生成SELECT null as MissingColumnName,但当显式列出要返回的列时,它将生成SELECT MissingColumnName。我不知道这是在Kentico8.2和9之间发生的变化,还是在升级过程中发生了一些变化。
发布于 2018-01-10 18:12:07
在版本9之前,Kentico为每个页面类型创建了特定的视图。在查询中使用这些视图检索页面信息。视图将节点、文档和自定义页面类型信息加入到一个查询中。在v9中,删除这些视图并添加一个泛型视图,该视图只将节点和文档信息连接在一起,然后动态添加自定义页面类型信息。
因此,简单的回答是,对于页面和数据的检索方式,API都发生了很大的变化,因此这是一个预期的重大变化。您的解决方案不是最好的解决方案,因为它返回所有列。但这将是快速,容易的解决办法。我建议在webpart上添加一些缓存,这将极大地提高性能,这就是我们在v9和更新站点中所做的事情。
https://stackoverflow.com/questions/48191156
复制相似问题