article, на который вы ссылаетесь в своем ответе, представляет собой способ делать то, что вы делаете, используя WIQL. Конечно, неплохой выбор.
Другой способ, на мой взгляд, лучше всего просто генерировать графически запрос, который дает результаты, которые вы после. Вы, вероятно, нужно просто «Рабочие элементы и Ссылка»:
После того как вы спасены, что вы будете иметь возможность:
- Открыть запрос в VS & Team Web Access
- Tie запрос с Excel & работает с WI из Excel.
- Поймайте результаты запроса с помощью TFS-API.
Для последней части, предположим, ваш запрос называется «MyLinkedQuery» и он находится в разделе «Команда запросов» от TeamProject «MYPROJ», вы можете сделать что-то вроде этого:
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);
}
}
}
}
}
}
Are есть ли преимущества в производительности для сохранения запроса? У меня также есть элементы на «третьем» слое, который мне нужно получить, и я до сих пор не смог понять, как это сделать. То есть, ошибки связаны с тестовыми случаями, которые связаны с рабочим элементом требования. –
Получение запроса от TFS должно иметь, по сути, ограничение производительности. Это было бы минимальным. Основной выигрыш заключается в том, что вы можете визуализировать в VS результаты и поддерживать их легко и последовательно. Другой вариант (имеющий жестко закодированную строку WIQL в вашем консольном приложении) может оказаться в долгосрочной перспективе менее ремонтопригодным. – pantelif
«Третий» уровень, о котором вы говорите, недоступен из визуально сгенерированных запросов в VS, но вы, безусловно, можете сделать это с помощью C#. – pantelif