Получение рабочих элементов и связанных с ними рабочих элементов в одном запросе с использованием API TFS
Кто-нибудь знает, можно ли получить список рабочих элементов и связанных с ними рабочих элементов за одну поездку из TFS, используя их веб-службы TFS API?
На данный момент нам нужно сделать второй звонок для каждого из рабочих элементов, сделанных во время первого вызова, и представляет проблему с производительностью.
Если это невозможно, есть ли способ заглянуть в тип связанного рабочего элемента без их извлечения (например, см., Если это задача или проблема)?
- Могу ли я просто «прочитать» файл, который используется?
- Параллельная итерация в C # или счетчике переходов
- возвращая локальную переменную из функции в C
- Выражения выражения слова регулярного выражения
- Что продолжается после использования std :: move c ++ 11
- открыть чтение xml из файла excel
- Статическая функция перегрузки C ++ с нестатической функцией
- std :: shared_ptr безопасность streamа объясняется
- Как вы можете вводить пробелы с помощью scanf?
- Отступы #defines
- Ошибка OpenCV imread (filename) в режиме отладки при использовании библиотек выпуска
- Ассоциативные массивы в C
- Как дублировать элементы управления .NET в форме?
Статья, на которую вы ссылаетесь в своем ответе, представляет собой способ делать то, что вы делаете после использования WIQL . Конечно, неплохой выбор.
Другой способ, на мой взгляд, лучше всего просто генерировать графически запрос, который дает результаты, которые вы после. Вам, вероятно, нужны простые «Рабочие элементы и прямая ссылка»:
Как только вы сохранили, что сможете:
- Откройте запрос в VS & Team Web Access
- Свяжите запрос с 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); } } } } } }
Нашел статью по этой проблеме.
Он позволяет использовать древовидный запрос, в котором вы можете получить идентификаторы родительских элементов и связанные элементы в одном запросе. Используя это, второй запрос может быть использован для получения фактических подробных объектов рабочих элементов. Два вопроса для решения проблемы.
Редактировать: Я также написал сообщение об этом в своем блоге.