Gewusst wie: abrufen der Liste der Kind Aufgaben aus einem Product Backlog Item im TFS-API?
Sich auf ein bestimmtes Produkt-backlog-id, ich will programmgesteuert abrufen einer Liste von Aufgaben, die Kind der PBI.
Ich bin mir bewusst, dass es nicht das eine Feld in der Aufgabe, sagt "Eltern-PBI-Id". Ich habe eine version von code, der ist arbeiten, aber das ist wirklich wirklich langsam, da ich noch tun, führen Sie ein Teil meiner Filterung int client.
Sehen, wie ich bin derzeit dabei:
string wiqlQuery =
string.Format(
"Select ID, [Remaining Work], State " +
"from WorkItems " +
"where (([Work Item Type] = 'Task')" +
" AND ([Iteration Path] = '{0}' )" +
" AND (State <> 'Removed')" +
" AND (State <> 'Done')) ",
sprint, storyId);
//execute the query and retrieve a collection of workitems
WorkItemCollection workItems = wiStore.Query(wiqlQuery);
if (workItems.Count <= 0)
return null;
var result = new List<TaskViewModel>();
foreach (WorkItem workItem in workItems)
{
var relatedLink = workItem.Links[0] as RelatedLink;
if (relatedLink == null) continue;
if (relatedLink.RelatedWorkItemId != storyId) continue;
Field remWorkField = (from field in workItem.Fields.Cast<Field>()
where field.Name == "Remaining Work"
select field).FirstOrDefault();
if (remWorkField == null) continue;
if (remWorkField.Value == null) continue;
var task = new TaskViewModel
{
Id = workItem.Id,
ParentPbi = relatedLink.RelatedWorkItemId,
RemainingWork = (double) remWorkField.Value,
State = workItem.State
};
result.Add(task);
}
return result;
- Haben Sie versucht, erstellen Sie die Abfrage im Abfrage-generator-gui? Wenn Sie das tun können und speichern Sie die Abfrage als Datei, die Datei enthält eine gute wiql-Anweisung. Wenn Sie das tun können Sie die Abfrage in der wiql, es zu verwandeln in einer einzigen sql-Abfrage auf das backend anstelle von Ihnen tut es auf der client-api.
- Sie können
workItem.Fields.Cast<Field>().FirstOrDefault(f => field.Name == "Remaining Work")
soweit die Methode akzeptiert ein Prädikat. Derzeit verwenden SieWhere(..).FirstOrDefault()
ist überwältigend. - was ist wistore?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als standard -, team -, Projekt im MSF Agile kommt mit einer Reihe von Abfragen. Werfen Sie einen Blick auf die 'Work-Items' -> 'Iteration 1' -> 'Iteration Backlog'.
Speichern Sie diese Abfrage als WIQL-Datei in Ihrer Festplatte ist absolut möglich.
Verwenden Sie es als eine modifizierte
wiqlQuery
sollten entlastet Sie von einer Menge von filtern, die Sie tun.BEARBEITEN (Antwort zu Kommentar: "Ok, habe ich gemacht, aber die Abfrage nicht erwähnt, die Beziehung zwischen Eltern und verknüpft (Kind -) Elemente"):
Öffnete ich die WIQL der Standard "Iteration Backlog":
Den Teil der Abfrage, die die verwandten Elemente sollte dieses