如何解释sitecore是否以未创建的语言返回项目?

kru*_*rul 3 sitecore

我有一个用荷兰语定义的项目,它看起来如下: 在此输入图像描述

当我试图通过查询它的父母来找到这个项目时,我找不到它.

 rootTagItem.Axes.GetDescendants() ....
Run Code Online (Sandbox Code Playgroud)

看着即时窗口我可以告诉父母包含该项目,但是用英语让我感到困惑?!

rootTagItem.Axes.GetDescendants()
Sitecore.Data.Items.Item[23]

Veehouderij-Varkens (en#1@web), id: {ED94B438-722B-498B-9499-84F749BB8429}
Database: "web"
Id: "{ED94B438-722B-498B-9499-84F749BB8429}"
Language: "en"
Name: "Veehouderij-Varkens"
Version: "1"
Run Code Online (Sandbox Code Playgroud)

尽管没有定义英文版本,我们如何解释该项目是否以英文版本返回(见图片)?

Marek的回应被接受了,因为他提供了解释它的链接.

Mar*_*lak 6

这就是Sitecore的工作方式.

如果此项目有其他语言版本,即使没有您的语言版本,Sitecore也会返回此项目.

你需要做的是检查.Versions.Count():

rootTagItem.Axes.GetDescendants().Where(d => d.Versions.Count > 0);
Run Code Online (Sandbox Code Playgroud)

有人打电话给他们empty items.我不知道它是否是官方Sitecore命名.在Sitecore 8.1中,您可以强制Sitecore跳过它们.

您可以KevinBrechbühl的Sitecore 8.1博客中找到有关Enforce语言版本状态的更多信息.