2012-02-17 2 views
1

특정 날짜에 편집 된 TFS 작업 항목을 쿼리하려고합니다. 변경 날짜 = @ 오늘 - 1을 사용하면 어제 변경된 작업 항목을 얻을 수 있지만 오늘 작업 항목을 변경하고 어제 변경 사항을 쿼리하면 변경 날짜가이므로 오늘은 무시됩니다. 그래서 내가 댓글에서 일부 X특정 날짜에 변경된 작업 항목 필드의 TFS 데이터베이스를 쿼리하는 방법

EDIT에서 변경 작업 항목을 찾고 역사를 통해 조회 할 :

좀 더 명확 할 것이다. 주어진 날에 필드 (예 : System.AssignedTo 필드)가 변경되었는지 확인하고 싶습니다.

답변

5

정상적인 쿼리 또는 WIQL을 사용하는 것이 가능하지 않다고 생각합니다.

TFS API를 사용하여 결과를 얻을 수 있습니다. 필요한 결과를 얻을 수있는 쿼리가 있습니다. 일부 TFS 어셈블리에 대한 참조 만 추가하면됩니다.

void Main() 
{ 
    const String CollectionAddress = "http://mytfsserver/tfs/MyCollection"; 

    using (var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(CollectionAddress))) 
    { 
     var server = tfs.GetService<WorkItemStore>(); 
     var changes = 
      server.Query("select * from WorkItems where [System.ChangedDate] = @Today") 
      .Cast<WorkItem>() 
      .SelectMany(wi => 
       wi.Revisions 
       .Cast<Revision>() 
       .SelectMany(r => 
        r.Fields 
        .Cast<Field>() 
        .Where(f => !String.IsNullOrEmpty(f.OriginalValue as String) && f.Value != f.OriginalValue && f.ReferenceName == "System.AssignedTo") 
        .Select(f => new { wi.Id, f.OriginalValue, f.Value, f.ReferenceName, }))) 
      .Dump(); 
    } 
} 
+0

좀 더 명확 할 것이다. 주어진 날에 필드 (예 : System.AssignedTo 필드)가 변경되었는지 확인하고 싶습니다. –

+0

@SureshBalaji 나는 당신이 의미하는 바를 알고 일할 때 제 대답을 시도하고 업데이트 할 것입니다. – DaveShaw

+0

@SureshBalaji 답변을 업데이트했습니다. – DaveShaw

관련 문제