如何使用WIQL在ms sql中使用的LIMIT关键字查询TFS工作项
我正在研究TFS API,我不知道TFS API有任何类似于LIMIT关键字或no的东西。我需要它来进行分页如何使用WIQL在ms sql中使用的LIMIT关键字查询TFS工作项,tfs,workitem,tfs-workitem,tfs-sdk,wiql,Tfs,Workitem,Tfs Workitem,Tfs Sdk,Wiql,我正在研究TFS API,我不知道TFS API有任何类似于LIMIT关键字或no的东西。我需要它来进行分页 谢谢在TFS WIQL中没有与SQLLIMIT关键字等价的东西,您需要自己实现分页 一种方法是在第一次访问时检索所有结果,并缓存它们并自己分页 另一种方法是在每次用户分页时动态构造WIQL查询。例如: 运行WIQL查询以仅返回与查询匹配的工作项ID从工作项中选择[System.Id],其中 缓存该ID列表 将ID列表分成与分页大小匹配的组 每次用户翻页时,通过ID明确请求工作项。从[Sy
谢谢在TFS WIQL中没有与SQL
LIMIT
关键字等价的东西,您需要自己实现分页
一种方法是在第一次访问时检索所有结果,并缓存它们并自己分页
另一种方法是在每次用户分页时动态构造WIQL查询。例如:
从[System.ID]位于(10,11,12,13,14,15)中的工作项中选择。
WorkItemCollection结果=WorkItemStore.Query(
“从工作项中选择标题,其中(ID<1000)”;
foreach(结果中的工作项)
{
Console.WriteLine(item.Fields[“Title”].Value);
}
如果您的代码访问的字段未在“选择”字段中指定
子句,则该字段将添加到分页字段集。另一轮
执行trip刷新该页面,以包含该页面的值
场
我也有同样的问题。我对序列应用了
Take
,以限制查询提供的结果。不幸的是,这实际上并不限制数据库返回的结果,但由于不支持该功能,因此它提供了一个可行的选项
Me.mWorkItems.Query(pstrSQL).OfType(Of WorkItem)().Take(5)
同时使用
Skip
和Take
可以进行分页。您能解释一下您想做什么吗?我想从tfs获取工作项并显示在网站上(asp.net mvc)。我想在显示时分页,但这似乎是wiql不支持限制键工作来完成的。你知道其他的事情吗?哦,那太愚蠢了。我正在使用VSO REST API。我可以一次获取所有工作项(在一个请求中),因为它不会返回超过20000项(响应包含错误),ID从180000开始,到310000结束。ID中也可能有漏洞,这取决于查询条件。如果我使用带有分页的API客户端库而不是REST API,那么分页在那里是如何工作的?它是在本地分页结果(即一次从VSO请求所有内容)还是只请求PageSize
结果数?令人恼火的是,没有限制功能,但VSO将结果查询限制为20K,这是一个错误。@davidferencyrogožan迟到了一点,但是您可以使用$top=200
限制RESTAPI上的响应。如果您在System.Id
上对查询进行排序,并构建一个动态查询,在其中存储上次调用返回的最后一个Id,则一切就绪。
Me.mWorkItems.Query(pstrSQL).OfType(Of WorkItem)().Take(5)