Kentico 文档查询 API 总是 returns 空结果

Kentico document query API always returns empty result

我有以下查询:

var newsItems = tree.SelectNodes()
                .Types(pageTypesArray)
                .Path(path)
                .OrderBy(orderBy)
                .CombineWithDefaultCulture(false)
                .Page(page, count)
                .OnCurrentSite()
                .NestingLevel(-1)
                .Culture(CurrentDocument.DocumentCulture)
                .InCategories(categories)
                .TopN(topN)
                .Where("ListableDocumentImage is not null AND ListableDocumentImage != ''")
                .Columns(columns);

翻译成这样:

WITH AllData AS 
(
    SELECT  TOP 6 * for brevity, ROW_NUMBER() OVER (ORDER BY [NewsOccurrenceDate] DESC) AS [CMS_RN] 
FROM View_CMS_Tree_Joined AS V WITH (NOLOCK, NOEXPAND) INNER JOIN SOS_News AS C WITH (NOLOCK) ON [V].[DocumentForeignKeyValue] = 
[C].[NewsID] AND V.ClassName = N'News' LEFT OUTER JOIN COM_SKU AS S WITH (NOLOCK) ON [V].[NodeSKUID] = [S].[SKUID] 
WHERE [NodeSiteID] = @NodeSiteID AND (([DocumentCanBePublished] = 1 AND ([DocumentPublishFrom] IS NULL OR [DocumentPublishFrom] <= @Now) 
AND ([DocumentPublishTo] IS NULL OR [DocumentPublishTo] >= @Now)) 
AND [NodeAliasPath] LIKE @NodeAliasPath AND [DocumentCulture] = @DocumentCulture 


**AND 0 = 1)** <<<------------------- WHERE DID THIS COME FROM?????
) 
SELECT  *, (SELECT COUNT(*) FROM AllData) AS [CMS_TOT] 


FROM AllData 
WHERE CMS_RN BETWEEN 4 AND 6 
ORDER BY CMS_RN

有没有人遇到过这样的事情?我不明白为什么他们坚持在我的 where 子句中的 AND 0=1

正确构建文档 API 调用将对此有所帮助。在您的查询结果中,您可以看到您的 WHERE 条件甚至没有被添加,所以它确实影响了被调用方法的顺序。

例如:

var newsItems = tree.SelectNodes()
                .Types(pageTypesArray)
                .Path(path)
                .Where("ListableDocumentImage is not null AND ListableDocumentImage != ''")
                .TopN(topN)
                .OrderBy(orderBy)
                .CombineWithDefaultCulture(false)
                .Page(page, count)
                .NestingLevel(-1)
                .Culture(CurrentDocument.DocumentCulture)
                .InCategories(categories)
                .OnCurrentSite()
                .Columns(columns);