我正在尝试将一些旧的民意调查数据导入我们的 sitecore 解决方案。对于导入的一部分,我正在尝试创建新的站点核心项目来保存基于我们已经为民意调查设置的母版页的数据。这个主人在它下面设置了几个默认项目,我想在添加旧投票数据之前删除几个特定的默认项目。但是,当我尝试使用 item.DeleteChildren() 删除默认项目之一时,我在 sitecore 内核中NullReferenceException
被抛出。Sitecore.Tasks.ItemEventHandler.OnItemDeleted(Object sender, EventArgs args)
如果有人知道可能导致这种情况的原因,我将不胜感激。我们使用的是 sitecore 版本 5.3.2。
这是我用来尝试基于母版创建/编辑项目的代码。创作一切都很完美,它是 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();
}
}