首页 > 解决方案 > C# 使用 JsonPatchDocument 更新 Azure Dev Ops WorkItem 父级

问题描述

我创建一个工作项并设置正确的父值没有问题,但是对于我的一生,我无法弄清楚如何在创建父项后更新它。我想要做的是将父链接的值设置为不同工作项的 url。

我虽然它可能像这样简单,我发送了operation一个Replace

private JsonPatchOperation GetParentPatchOperation(WorkItem item, Operation operation)
    {
        var patch =
            new JsonPatchOperation()
            {
                Operation = operation,
                Path = "/relations/-",
                Value = new
                {
                    rel = "System.LinkTypes.Hierarchy-Reverse",
                    url = item.Url,
                    attributes = new { comment = "" }
                }
            };
        return patch;
    }

ADO 给出的错误是关系的类型无法更改 - 即使需要更改的 rel 以正确的索引为目标,也会出现相同的错误。

我实际上已经找到了解决方案,请参见下文。

标签: json.netazure-devops-rest-apitfs-workitem

解决方案


看来这必须在 2 次操作中完成。首先找到rel要删除的索引

var index = workItem.Relations.ToList().FindIndex(r => r.Rel.Contains("<search term>"));

然后创建 2 PatchOperations,一个在索引处删除,然后一个添加一个rel指向新工作项的新指针。


推荐阅读