2014-07-28 1 views
0

Я хочу, чтобы получить активированную и Закрытие Даты ребенка WorkItem, я использую ниже запрос:Как получить активированную Дату и Закрытие Даты ребенка WorkItem от TFS

{SELECT 
[System.Id] 
,[System.Links.LinkType] 
,[System.WorkItemType] 
,[System.Title] 
,[System.AssignedTo] 
,[System.CreatedDate] 
,[System.ChangedDate] 
,[Microsoft.VSTS.Common.ClosedDate] 
,[Microsoft.VSTS.Common.ActivatedDate] 
FROM WorkItems Where [System.Id] = 27279 
} 

и я собираю результат, как указано ниже:

var flatQuery = new Query(workItemStore, detailsWiql.ToString()); 
var workitems = flatQuery.RunQuery(); 
var dispItem = new DisplayWorkItem 
       { 

           ChangedBy = workitems[0].ChangedBy, 
           CreatedDate = workitems[0].CreatedDate, 
           WorkItemType = workitems[0].Type.Name, 
           ParentID = links[i].TargetId 
       }; 
       displayItems.Add(dispItem); 

Проблема во время использования. оператор i видит список, в котором недоступна опция «Активированная дата» и «Закрытая дата».

любые предложения, где я делаю ошибку?

ответ

0

Это несколько сложно, но если вы ищете конкретный или известный рабочий элемент I.E. 27279; зачем запускать запрос вообще и просто использовать метод GetWorkItem в объекте WorkItemStore.

var wi = workItemStore.GetWorkItem(27279); 
foreach(var link in wi.WorkItemLinks) 
{ 
    if(link.LinkTypeEnd.Name == "Child") 
    { 
     var child = workItemStore.GetWorkItem(link.TargetID) 
     child["Closed Date"] 
    } 
} 
+0

BJHop дает неявный указатель здесь: в качестве свойства C# доступно только куча полей. Вы можете получить доступ к любым полям с синтаксисом рабочего элемента ["имя поля или ссылки"]. –

0

Вы должны указать WorkItem [0] .полей [ "System.ActivatedDate"]. Value, чтобы получить данные, которые вы AEE после. Помните также, что поле может быть недоступно или не может быть установлено. Немного оборонительного программирования, и вам хорошо идти.

Необходимо указать эти поля как возвращаемые запросом, так что вам не нужно выполнять workitem [0] .Open(), чтобы получить полный рабочий элемент. Если вам нужно использовать .Открыть это замедлит ваш код.

Кроме того, вам необходимо создать запрос на работу и прямые ссылки. Самый простой способ сделать это - построить запрос, который вы хотите в визуальной студии, а затем сохранить на рабочем столе.

+0

это сработало, много thanx :) – ZaraQ