2

我的客户要求我以编程方式删除自定义实体及其依赖项(防止删除此实体)。

我已经使用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。

有人可以帮助我如何实现此功能吗?

4

1 回答 1

2

响应中的Entity项目仅充当数据传输对象。它们不是真实的实体。您正在寻找的是名为“ dependentcomponentobjectid ”的属性(这是一个 Guid 类型,而不是 EntityReference)。属性“ dependentcomponenttype ”(OptionSetValue) 为您提供有关您正在处理的组件类型的线索。

请注意,从属组件又可以是其他组件所依赖的必需组件。(例如,工作流依赖于工作流活动,而工作流活动又依赖于插件程序集。)因此,强大的删除工具需要遵循递归策略。

于 2015-05-18T00:01:36.043 回答