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

时间:2013-07-15 16:11:12

标签: c# umbraco

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

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

任何答案都将非常感谢!

1 个答案:

答案 0 :(得分:6)

你是对的,没有PublishSaveAndPublish选项接受像Save方法这样的IEnumerable。它可以很方便,因为它可以保存一些代码行。

目前实现目标的最有效选择是执行以下操作。

var cs = ApplicationContext.Current.Services.ContentService;
foreach(var content in yourListOfContentItems)
{
    cs.SaveAndPublish(content);
}

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