Orchardcms 从Orchard中的CSV文件批量导入内容

Orchardcms 从Orchard中的CSV文件批量导入内容,orchardcms,orchard-modules,Orchardcms,Orchard Modules,我有一个网站,需要定期从CSV文件导入600-800条记录 作为导入的一部分,现有记录将被删除/删除,然后替换为新导入的数据 目前,我正在删除以下现有项目: var itemsToRemove = _contentManager.Query(VersionOptions.Published, "Store").List(); foreach (var item in itemsToRemove) { _contentManager.Remove(item); } 然后像这样导入我的新记

我有一个网站,需要定期从CSV文件导入600-800条记录

作为导入的一部分,现有记录将被删除/删除,然后替换为新导入的数据

目前,我正在删除以下现有项目:

var itemsToRemove = _contentManager.Query(VersionOptions.Published, "Store").List();

foreach (var item in itemsToRemove)
{
   _contentManager.Remove(item);
}
然后像这样导入我的新记录:

var item = _contentManager.New("Store");

item.As<TitlePart>().Title = title;
item.As<StorePart>().Address1 = address1;

_contentManager.Create(item);
var item=\u contentManager.New(“存储”);
item.As().Title=标题;
item.As().Address1=Address1;
_contentManager.Create(项);
这是可行的,但这一过程耗时太长,已经超时了

有人能提出更好或更有效的方法吗?或者告诉我如何延长超时时间


提前感谢。

现在orchard的导入性能不是很好。所以这是一个已知的问题。如果可以使用标准的导入/导出接口,则可以尝试增加batchsize。当然,您需要为此将csv转换为xml。我们现在面临一个类似的问题,倾向于根本不导入内容,而是使用rest端点按需检索内容。首先,我认为您不需要.List()来迭代从查询中获得的列表,其次,您可以尝试使用_contentManager.Destroy()方法进行永久擦除。除此之外,您还可以通过异步方法(WebAPI控制器)处理流程,因此不会发生超时。我认为你不能更快地创建内容项,但我认为它不应该超时。你有没有想过也许你不需要删除那些现有的内容项?也许他们的更新会解决你的问题。谢谢你的回复。我想避免编写单独的服务来处理它,但这确实值得考虑。不幸的是,我没有唯一的标识符,所以切换到更新可能有点尴尬。不过,我会检查一下销毁()-干杯。现在在orchard中导入性能不是很好。所以这是一个已知的问题。如果可以使用标准的导入/导出接口,则可以尝试增加batchsize。当然,您需要为此将csv转换为xml。我们现在面临一个类似的问题,倾向于根本不导入内容,而是使用rest端点按需检索内容。首先,我认为您不需要.List()来迭代从查询中获得的列表,其次,您可以尝试使用_contentManager.Destroy()方法进行永久擦除。除此之外,您还可以通过异步方法(WebAPI控制器)处理流程,因此不会发生超时。我认为你不能更快地创建内容项,但我认为它不应该超时。你有没有想过也许你不需要删除那些现有的内容项?也许他们的更新会解决你的问题。谢谢你的回复。我想避免编写单独的服务来处理它,但这确实值得考虑。不幸的是,我没有唯一的标识符,所以切换到更新可能有点尴尬。不过我会查出来的-干杯。