【问题标题】:Sitefinity - Safely delete orphaned dynamic content recordsSitefinity - 安全删除孤立的动态内容记录
【发布时间】:2017-08-17 19:25:06
【问题描述】:
我一直在通过 API 向动态模块添加记录,在实验过程中,我添加了一堆与任何有效父记录都没有正确关联的记录。
我已经检查过,到目前为止,我可以看到 Sitefinity 将有关这些记录的数据存储在多个表中:
- mydynamiccontenttype_table
- sf_dynamic_content
- sf_dynmc_cntnt_sf_lnguage_data
- sf_dynmc_cntent_sf_permissions
我想通过删除这些记录来清理数据库,但我想确保在此过程中不会产生更多问题。
有人知道是否有更多对这些动态内容类型记录的引用或安全删除它们的过程吗?
【问题讨论】:
标签:
sitefinity
sitefinity-dynamic-content-types
【解决方案1】:
可能还有其他表,因此您最安全的选择是使用 Sitefinity API 删除项目。
只需获取项目的 masterId 并使用如下代码:
public static void DeleteDataItemOfType(this DynamicModuleManager manager, string type, Guid Id)
{
Type resolvedType = TypeResolutionService.ResolveType(type);
using (var region = new ElevatedModeRegion(manager))
{
manager.DeleteDataItem(resolvedType, Id);
manager.SaveChanges();
}
}