2015-02-10 49 views
1

我想编写一个查询,在那里我可以执行检索backlog项目,如下图所示。TFS API C#查询语法

WorkItemCollection queryResults = workItemStore.Query(
    "Select [State], [ID], [Title], [Description] " + 
    "From WorkItems " + 
    "Where [Work Item Type] IN ('Task', 'Bug', 'Product Backlog Item')" + 
    "AND [Iteration Path] Under 'ProjectName'" + 
    "AND [Area Path] Under 'ProjectName'" + 
    "And State IN ('New', 'Approved', 'Committed')"); 

但是,我没有收到任何数据。不知道如何正确构建查询。

enter image description here

回答

0

得到您的查询摆脱@project的。在使用API​​时我不会自动替换。

您在AND之前也没有空间。

您的查询与图像不符!您可以在团队资源管理器中构建您想要的查询,然后在桌面上“另存为”。在记事本中打开并复制查询。

1

我结束了使用此查询,以避免两次击中TFS。然后,我根据WorkItem中公开的WorkItemLinks跟踪子项,该WorkItem从执行下面的wql中获得。一旦完成,我重新排列了父母在孩子面前提供(树视图)样式的条目。

string query = string.Format(@" 
    SELECT 
    [System.Title], 
    [System.Description], 
    [System.WorkItemType], 
    [System.Id] 
    FROM WorkItem 
    WHERE 
    ([System.WorkItemType] IN GROUP 'Microsoft.RequirementCategory' OR [System.WorkItemType] IN GROUP 'Microsoft.BugCategory' OR [System.WorkItemType] IN GROUP 'Microsoft.TaskCategory') 
    AND [System.IterationPath] UNDER '{0}' 
    AND [System.State] IN ('New', 'To Do') 
    AND [System.AreaPath] UNDER '{0}' 
    ORDER BY 
    [Microsoft.VSTS.Common.Priority], 
    [System.Id]", teamProjectName);