首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WIQL查询不包含"System.AssignedTo“字段

WIQL查询不包含"System.AssignedTo“字段
EN

Stack Overflow用户
提问于 2017-01-27 05:07:34
回答 2查看 1.8K关注 0票数 2

我有这个WIQL,它的目的是查找分配给工作项的用户。

代码语言:javascript
复制
var wiql = string.Format("SELECT [System.Id], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State]" +
                           " FROM WorkItems" +
                           " WHERE ([System.TeamProject] = '{0}')" +
                           " AND ([System.WorkItemType] = 'Task' OR [System.WorkItemType] = 'Bug')" + 
                           " ORDER BY [System.Id]", projectName);

我是这样执行的.

代码语言:javascript
复制
Wiql wiql = new Wiql() { Query = wiqlQueryString };

  using (var workItemTrackingHttpClient = new WorkItemTrackingHttpClient(VstsAccess.AccessUri, VstsAccess.AccessCredentials))
  {
    var workItemQueryResult = workItemTrackingHttpClient.QueryByWiqlAsync(wiql).Result;

    if (workItemQueryResult != null && workItemQueryResult.WorkItemRelations.Any())
    {
      List<int> sourceIdList = new List<int>();
      foreach (var item in workItemQueryResult.WorkItemRelations)
        sourceIdList.Add(item.Target.Id);

      int[] arr = sourceIdList.ToArray();
      string[] fields = { "System.Id", "System.WorkItemType", "System.AssignedTo", "System.Title", "System.Description", "System.State", "System.IterationPath", "System.TeamProject", "System.ChangedDate", "System.ChangedBy", "System.CreatedDate" };
      return workItemTrackingHttpClient.GetWorkItemsAsync(arr, fields, workItemQueryResult.AsOf).Result;
    }
    else
      return new List<WorkItem>();
  }

但是"AssignedTo“和"Description”字段并没有出现在工作项的字典字段集中。为什么会这样?我如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-27 13:00:06

您可以使用下面的代码来查询工作项,它具有"AssignedTo“和"Description”字段值。

代码语言:javascript
复制
WorkItemStore workItemStore = teamProjectCollection.GetService<WorkItemStore>();
string queryString = string.Format("SELECT [System.Id], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State]" +
                           " FROM WorkItems" +
                           " WHERE ([System.TeamProject] = '{0}')" +
                           " AND ([System.WorkItemType] = 'Task' OR [System.WorkItemType] = 'Bug')" +
                           " ORDER BY [System.Id]", "Mtt-Scrum"); ;

// Create and run the query.
Query query = new Query(workItemStore, queryString);
WorkItemCollection witCollection = query.RunQuery();

foreach (Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem workItem in witCollection)
{
    ......
}
票数 2
EN

Stack Overflow用户

发布于 2019-04-25 20:54:24

查询结果将只包含非空的字段,即没有人被分配给工作项,该字段将根本不会出现在Fields字典中。

您需要实现对这些字段的自定义检查,并根据您的逻辑将它们分配给某些内容:

代码语言:javascript
复制
            int[] arr = ids.ToArray();

            string[] fields = new string[] {
                "System.Id", 
                "System.Title",
                "System.State",
                "System.AssignedTo"
            };

            var workItems = await workItemTrackingHttpClient.GetWorkItemsAsync(arr, fields, workItemQueryResult.AsOf);

            List<WorkItemData> list = new List<WorkItemData>();

            foreach (var workItem in workItems)
            {
                var wi = new WorkItemData(workItem.Id.Value);

                wi.Title = workItem.Fields["System.Title"].ToString();
                wi.State = workItem.Fields["System.State"].ToString();
                wi.AssignedTo = workItem.Fields.ContainsKey("System.AssignedTo") ? workItem.Fields["System.AssignedTo"].ToString() : "";

                list.Add(wi);

            }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41882996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档