【问题标题】:is it possible to query workitem custom field in TFS SDK是否可以在 TFS SDK 中查询工作项自定义字段
【发布时间】:2015-12-05 08:00:44
【问题描述】:

我有几个包含名为“参考 ID”的自定义字段的工作项 是否可以在此自定义字段上使用 wiql 进行查询。 目前我正在使用以下方法:

//TFS中的foreach项目

//形成wiql

WorkItemCollection workItemCollection = workItemStore.Query(
                    " SELECT [System.Id], [System.WorkItemType]," +
                    " [System.State], [System.AssignedTo], [System.Title] " +
                    " FROM WorkItems " +
                    " WHERE [System.TeamProject] = '" + tfsProject.Name +
                    "' ORDER BY [System.WorkItemType], [System.Id]");

//对结果集运行循环

//如果workitem.Fields["Reference ID"]=必填值

//对这个工作项做一些任务

由于有超过 1000 个结果,这种方法需要相当长的时间。

我的问题: 是否可以在上述查询中添加自定义字段作为过滤条件

【问题讨论】:

    标签: tfs


    【解决方案1】:

    是的。您使用与项目关联的字段名称。您可以使用 Process Explorer (TFS Power Tools) 并打开 WorkItemType 来获取此信息。

    这是我们今天使用的一个例子

    Select Id from WorkItems where ([xxx.Ticket.OriginalTicketID] = '12345');
    

    【讨论】:

    • 或者,您可以将鼠标悬停在工作项编辑器中的字段标签上,您应该会看到带有字段名称的工具提示。您可以在 WIQL 查询中使用该字段名称。
    • 是的。我个人更喜欢使用内部名称——但你当然是对的。两者都可以。
    • @Robaticus,您的意思是工具菜单下的“流程编辑器”。
    【解决方案2】:

    如果您无权访问 TFS Power Tools 或无法安装它,那么您也可以使用工作项对象的 DisplayForm 属性。

    myItem = Workitem.GetWorkItem("12345")
    myItem.DisplayForm
    

    DisplayForm 返回一个包含所有字段名称和属性的 XML。您可以通过标签查找 XML 并获取相应的 Control FieldName。

    myItem.Fields.Item("Custom.FieldName")
    

    【讨论】:

    • 很遗憾,Fields 中没有这样的“Item”属性,所以这不起作用
    【解决方案3】:

    当然,只需添加自定义字段的名称即可。

    【讨论】:

      猜你喜欢
      • 2012-04-28
      • 2011-07-16
      • 1970-01-01
      • 2015-06-18
      • 2015-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      相关资源
      最近更新 更多