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();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架