Sitefinity - 安全删除孤立的动态内容记录
Sitefinity - Safely delete orphaned dynamic content records
我一直在通过 API 将记录添加到动态模块,在我的实验过程中,我添加了一堆未与任何有效父记录正确关联的记录。
我已经检查过,到目前为止我可以看到 Sitefinity 将有关这些记录的数据存储在多个表中:
- mydynamiccontenttype_table
- sf_dynamic_content
- sf_dynmc_cntnt_sf_lnguage_data
- sf_dynmc_cntent_sf_permissions
我想通过删除这些记录来清理数据库,但我想确保我不会在此过程中制造更多问题。
有人知道是否有更多对这些动态内容类型记录的引用或安全删除它们的过程吗?
可能还有其他表格,因此最安全的选择是使用 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();
}
}
我一直在通过 API 将记录添加到动态模块,在我的实验过程中,我添加了一堆未与任何有效父记录正确关联的记录。
我已经检查过,到目前为止我可以看到 Sitefinity 将有关这些记录的数据存储在多个表中:
- mydynamiccontenttype_table
- sf_dynamic_content
- sf_dynmc_cntnt_sf_lnguage_data
- sf_dynmc_cntent_sf_permissions
我想通过删除这些记录来清理数据库,但我想确保我不会在此过程中制造更多问题。
有人知道是否有更多对这些动态内容类型记录的引用或安全删除它们的过程吗?
可能还有其他表格,因此最安全的选择是使用 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();
}
}