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

时间:2021-10-03 20:37:34

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

  使用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(, 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(, false);
WorkItemCollection result = query.EndQuery(callback);
foreach (WorkItem item in result)
{
Console.WriteLine(" 工作项名称:" + item.Title + " 工作项描述:" + item.Description);
} Console.ReadLine();

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