TFS二次开发系列:五、工作项查询

简介:

本节将讲述如何查询工作项,用于二次开发中定义获取工作项列表。

  使用WorkItemStore.Query方法进行查询工作项,其使用的语法和SQL语法类似:

Select [标题]

from workitems

where [工作项类型]='任务' and [指派给] = 'administrator'

order by [标题]

  我们通过多个步骤来学习,一、我们连接TFS服务:

            //TFSURI
            Uri tfsUri = new Uri("http://pc-20130113jkun:8080/tfs");
            TfsTeamProjectCollection projectCollection = new TfsTeamProjectCollection(tfsUri);
            WorkItemStore workItemStore = (WorkItemStore)projectCollection.GetService(typeof(WorkItemStore));

  二、基本查询

复制代码
            //基本查询
            WorkItemCollection queryResults = workItemStore.Query(@"
                Select  [标题] 
                From WorkItems
                Where [工作项类型] = 'Bug' ");
            foreach (WorkItem item in queryResults)
            {
                Console.WriteLine(" 工作项名称:"+item.Title+" 工作项描述:"+item.Description);
            }
复制代码

  三、多条件查询和排序

复制代码
           Console.WriteLine("--------------------------多条件查询和排序-------------------------");
            //多条件查询和排序
            WorkItemCollection itemcollection = workItemStore.Query(@"Select [标题] from workitems 
                where [工作项类型]='任务' and [指派给] = 'administrator' order by [标题] ");
            foreach (WorkItem item in itemcollection)
            {
                Console.WriteLine(" 工作项名称:" + item.Title + " 工作项描述:" + item.Description);
            }
复制代码

  四、查询结果数量

复制代码
            Console.WriteLine("--------------------------查询结果数量-------------------------");
            //查询结果数量
            string queryString = @" Select  [标题] From WorkItems Where [工作项类型] = 'Bug'";
            Query query = new Query(workItemStore,queryString); 
            int numWorkItems = query.RunCountQuery();
            Console.WriteLine("工作项数量 " + numWorkItems + " user stories.");
复制代码

  五、异步查询

复制代码
            Console.WriteLine("--------------------------异步查询-------------------------");
            //异步查询
            ICancelableAsyncResult callback = query.BeginQuery();
            callback.AsyncWaitHandle.WaitOne(50, false);
            WorkItemCollection result = query.EndQuery(callback);
            foreach (WorkItem item in result)
            {
                Console.WriteLine(" 工作项名称:" + item.Title + " 工作项描述:" + item.Description);
            }
复制代码

  所有本文的代码皆在下面。

复制代码
            //TFSURI
            Uri tfsUri = new Uri("http://pc-20130113jkun:8080/tfs");
            TfsTeamProjectCollection projectCollection = new TfsTeamProjectCollection(tfsUri);
            WorkItemStore workItemStore = (WorkItemStore)projectCollection.GetService(typeof(WorkItemStore));
            Console.WriteLine("--------------------------基本查询-------------------------");
            //基本查询
            WorkItemCollection queryResults = workItemStore.Query(@"
                Select  [标题] 
                From WorkItems
                Where [工作项类型] = 'Bug' ");
            foreach (WorkItem item in queryResults)
            {
                Console.WriteLine(" 工作项名称:"+item.Title+" 工作项描述:"+item.Description);
            }

            Console.WriteLine("--------------------------多条件查询和排序-------------------------");
            //多条件查询和排序
            WorkItemCollection itemcollection = workItemStore.Query(@"Select [标题] from workitems 
                where [工作项类型]='任务' and [指派给] = 'administrator' order by [标题] ");
            foreach (WorkItem item in itemcollection)
            {
                Console.WriteLine(" 工作项名称:" + item.Title + " 工作项描述:" + item.Description);
            }

            Console.WriteLine("--------------------------查询结果数量-------------------------");
            //查询结果数量
            string queryString = @" Select  [标题] From WorkItems Where [工作项类型] = 'Bug'";
            Query query = new Query(workItemStore,queryString); 
            int numWorkItems = query.RunCountQuery();
            Console.WriteLine("工作项数量 " + numWorkItems + " user stories.");

            Console.WriteLine("--------------------------异步查询-------------------------");
            //异步查询
            ICancelableAsyncResult callback = query.BeginQuery();
            callback.AsyncWaitHandle.WaitOne(50, false);
            WorkItemCollection result = query.EndQuery(callback);
            foreach (WorkItem item in result)
            {
                Console.WriteLine(" 工作项名称:" + item.Title + " 工作项描述:" + item.Description);
            }

            Console.ReadLine();
复制代码

  




本文转自程兴亮博客园博客,原文链接:http://www.cnblogs.com/chengxingliang/p/3251376.html,如需转载请自行联系原作者

相关文章
|
12月前
|
存储 JavaScript Linux
禅道 给禅道缺陷增加自定义字段供不同的缺陷操作页面使用 1
禅道 给禅道缺陷增加自定义字段供不同的缺陷操作页面使用
548 0
|
12月前
|
JavaScript BI PHP
禅道 给禅道缺陷增加自定义字段供不同的缺陷操作页面使用 2
禅道 给禅道缺陷增加自定义字段供不同的缺陷操作页面使用
260 0
禅道 给禅道缺陷增加自定义字段供不同的缺陷操作页面使用 2
|
12月前
|
JavaScript PHP
禅道 给禅道缺陷增加是否遗留及来源渠道自定义字段2
禅道 给禅道缺陷增加是否遗留及来源渠道自定义字段2
83 0
|
12月前
|
存储 Linux PHP
禅道 给禅道缺陷增加是否遗留及来源渠道自定义字段 1
禅道 给禅道缺陷增加是否遗留及来源渠道自定义字段
91 0
|
C# 容器
旧项目集成
旧项目集成
107 0
旧项目集成
hybris导出系统已有数据的两种方式
hybris导出系统已有数据的两种方式
136 0