在Umbraco 6中,使用ContentService保存和发布节点列表的最佳方法是什么?

Har*_*rry 3 c# umbraco

我正在编写一个简单的函数,从XML数据源(大约400个节点)更新/创建节点,我想知道保存和发布所有节点的最佳方法是什么.我注意到你可以Save列出一些节点,但是没有SaveAndPublish相应的节点.

我应该迭代列表并调用SaveAndPublish每个节点还是有更好的方法?如果有替代方案,性能方面是否存在差异?

任何答案将不胜感激!

小智 6

你是正确的没有PublishSaveAndPublish选择接受像Save方法一样的IEnumerable .它可以很方便,因为它可以节省一些代码行.

目前实现您想要的最有效的选择是执行以下操作.

var cs = ApplicationContext.Current.Services.ContentService;
foreach(var content in yourListOfContentItems)
{
    cs.SaveAndPublish(content);
}
Run Code Online (Sandbox Code Playgroud)

在通过调用Save方法发布之前保存列表并不会对您产生任何影响,就像Umbraco检测到列表中有新内容一样,它们单独处理每个内容.从我所知道的那样做然后调用Publishafter不会为你节省任何周期因为Publish方法调用相同的SaveAndPublishDo方法SaveAndPublish调用.所以不妨直接找到最终结果.