.net - 使用 TFS API 在单个查询中检索工作项及其链接的工作项

标签 .net c#-4.0 tfs-sdk

有谁知道是否可以检索工作项列表及其链接的工作项 使用他们的 TFS API Web 服务从 TFS 的一次旅行中?

目前,我们不得不为第一次调用期间所做的每个工作项进行第二次调用,并且引入了性能问题。

如果这不可能,有没有办法在不检索链接的工作项的情况下查看它们的类型(例如,查看它是任务还是问题)?

最佳答案

article您在回答中所指的是使用 WIQL 来做您所追求的事情的方法。 .当然,这不是一个糟糕的选择。在我看来更好的另一种方法是简单地以图形方式生成查询,从而产生您想要的结果。您可能需要一个简单的“工作项和直接链接”:enter image description here保存后,您将能够:

  • 在 VS & Team Web Access 中打开查询
  • 将查询与 Excel 联系起来并在 Excel 中处理 WI
  • 使用 TFS-API 捕获查询结果。

  • 对于后一部分,假设您的查询名为“MyLinkedQuery”并且它位于 TeamProject“MyProj”的“Team Queries”下,您可以执行以下操作:
    using System;
    using Microsoft.TeamFoundation.Client;
    using Microsoft.TeamFoundation.WorkItemTracking.Client;
    
    namespace LinkedQueryResults
    {
        class Program
        {
            static void Main()
            {
                TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://TFSURL"));
    
                var workItemStore = (WorkItemStore)teamProjectCollection.GetService(typeof(WorkItemStore));
    
                var project = workItemStore.Projects["MyProj"];
                QueryHierarchy queryHierarchy = project.QueryHierarchy;
                var queryFolder = queryHierarchy as QueryFolder;
                QueryItem queryItem = queryFolder["Team Queries"];
                queryFolder = queryItem as QueryFolder;
    
                if (queryFolder != null)
                {
                    var myQuery = queryFolder["MyLinkedQuery"] as QueryDefinition;
                    if (myQuery != null)
                    {
                        var wiCollection = workItemStore.Query(myQuery.QueryText);
                        foreach (WorkItem workItem in wiCollection)
                        {
                            Console.WriteLine(workItem.Title); 
                        }
                    }
                }       
            }
        }
    }
    

    关于.net - 使用 TFS API 在单个查询中检索工作项及其链接的工作项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10748412/

    相关文章:

    c# - 有没有办法调用通用的methodInfo?

    c# - 使用 LockBits 复制位图的矩形部分

    sql - 所选对象使用不受支持的数据库提供程序

    c# - 是否可以在两个项目中声明一个部分类

    c# - 为什么当我将类转换为它未实现的接口(interface)时没有编译器错误?

    c# - 更新到 dotnet 6 后,dotnet run 无法正常工作

    c# - 通过 ODBC 查询系统间缓存

    tfsbuild - TFS 2010 API,确定构建在哪个构建服务器上运行。

    c# - 从域外以编程方式访问 TFS 2010

    .net-4.0 - Workspace.PendEdit 未 checkout 文件