0
我試圖導入一些遺留投票數據到我們的sitecore解決方案。對於部分導入,我試圖創建新的sitecore項目來保存基於我們已經爲民意調查設置的母版頁數據。這個大師有幾個默認項目設置在它下面,我想刪除一些特定的默認項目,然後我添加舊輪詢數據。然而,當我嘗試刪除使用item.DeleteChildren()的默認項目之一,我得到Sitecore.Tasks.ItemEventHandler.OnItemDeleted(Object sender, EventArgs args)
在sitecore內核拋出NullReferenceException
。如果有人有任何想法可能導致這種情況,我會很感激。我們正在使用sitecore 5.3.2版本。NullReferenceException當刪除sitecore項目兒童
這裏是我使用的代碼嘗試創建/編輯基於主人的項目。創建完美的作品,它的DeleteChildren()調用不起作用。
Guid LegacyPollFolderGuid = new Guid("8AE89A44-9DCD-4AC2-B0F3-DD438188A575");
Guid QuizOMaticMasterGuid = new Guid("74B95ABF-1898-4870-8B4F-50AF0078AE22");
var master = Sitecore.Configuration.Factory.GetDatabase("master");
var root = master.GetItem(new Sitecore.Data.ID(LegacyPollFolderGuid));
var quizMasterTemplate = master.Masters[new Sitecore.Data.ID(QuizOMaticMasterGuid)];
var quizPage = root.Add("Test Quiz", quizMasterTemplate);
if (quizPage != null)
{
var quiz = quizPage.Children["Column One"].Children["QuizOMatic"];
if (quiz != null)
{
var questionFolder = quiz.Children["Questions"];
var questionTemplate = questionFolder.Children[0].Template;
var resultsFolder = quiz.Children["Results"];
var linksFolder = quiz.Children["Links"];
using (new Sitecore.SecurityModel.SecurityDisabler())
{
questionFolder.DeleteChildren();
}
}
你需要問題文件夾嗎?你有沒有試過直接刪除它。它會自動刪除孩子。 – marto
我還沒有試過刪除問題文件夾,因爲我需要它。我試着枚舉問題文件夾的子項,並直接調用item.Delete(),直接得到相同的結果。 –
它聽起來像一個sitecore錯誤。我想知道是不是因爲你剛剛創建了這個項目而直接刪除了。只是爲了證明它不是一個時間問題,你可以在調用delete之前退出Thread.Sleep(2000)並查看它是否仍然會出錯 – marto