我正在尝试将一些旧的民意调查数据导入我们的sitecore解决方案。对于导入的一部分,我正在尝试创建新的sitecore项目来保存基于我们已经为民意调查设置的母版页的数据。这个master下面设置了几个默认项,我想在添加旧的poll数据之前删除一些特定的默认项。但是,当我尝试使用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();
}
}
答案 0 :(得分:0)
我已经构建了一个具有相同功能的工具;删除特定文件夹下的所有项目。我得到了同样的错误,但我看到项目被删除了。所以我多次重新使用该工具,最终删除了所有项目。