我的客户要求我以编程方式删除自定义实体及其依赖项(这会阻止删除此实体)。
我使用 RetrieveDependenciesForDeleteRequest 检索了自定义实体的依赖项。此请求为我提供了依赖项集合,必须在删除该自定义实体之前将其删除。
RetrieveDependenciesForDeleteResponse resp =
(RetrieveDependenciesForDeleteResponse) service.Execute(req);
//A more complete report requires more code
foreach (Entity dependencyEntity in resp.EntityCollection.Entities)
{
service.Delete(d.LogicalName, dependencyEntity.Id);
}
现在我面临的问题是 dependencyEntity.Id 始终为空GUID,而不是有效的GUID。
有人能帮助我如何实现这项功能吗?
答案 0 :(得分:2)
响应中的Entity
项仅用作数据传输对象。它们不是真正的实体。你要找的是名为" dependentcomponentobjectid "的属性。 (这是Guid类型,而不是EntityReference)。属性" dependentcomponenttype " (OptionSetValue)为您提供有关您正在处理的组件类型的线索。
请注意,依赖组件又可以是其他组件所依赖的必需组件。 (例如,工作流依赖于工作流活动,而工作流活动又依赖于插件程序集。)因此,强大的删除工具需要遵循递归策略。