我有同樣的問題,找到了以下解決方案:
Item[] items = Sitecore.Context.Database.SelectItems(query);
由於您的代碼在(當前)上下文中執行,所以這不起作用。和代碼路徑執行
/Sitecore的/內容/ ShrinersHospital2/CareAndTreatment
與您上面的查詢告訴Sitecore的從路徑搜索
/Sitecore的/內容/ ShrinersHospital2/CareAndTreatment/sitecore/content/ShrinersHospital2/CareAndTreatment
這將返回0 ite結果爲ms,因爲路徑不存在。
嘗試以下查詢:
string query = "//*[@@templatename = 'CareAndTreatmentType' and @TreatmentType = '{ECDBE944-99DE-4347-8FA2-6613FA85402C}']";
Item[] items = Sitecore.Context.Database.SelectItems(query);
當您打開數據庫「網絡」,你沒有背景和你的「開始」路徑是/。然後下面的代碼返回項目進行查詢,因爲存在的路徑
/Sitecore的/內容/ ShrinersHospital2/CareAndTreatment
string query = "/sitecore/content/ShrinersHospital2/CareAndTreatment//*[@@templatename = 'CareAndTreatmentType' and @TreatmentType = '{ECDBE944-99DE-4347-8FA2-6613FA85402C}']";
var database = Sitecore.Configuration.Factory.GetDatabase("web");
items = database.SelectItems(query);