什么tfs 2010对象引用可用于Tfs_DefaultCollection.dbo.tbl_ReleaseNoteDetails

时间:2013-01-31 15:57:20

标签: tfs tfs2010 tfs-sdk

我们为签到备注提供了团队项目集合源控制设置,要求每次签入都要捕获“跟踪号”。这个数字是TFS的外部数字。我需要搜索具有特定跟踪号的所有变更集。

生成的变更集列表告诉我每月部署的GetLatest是什么。

- 我们不使用工作项

这个.SQL给了我正在寻找的列表。我想在Visual Studio的代码中访问它。

SELECT ReleaseNoteId, FieldName, BaseValue
from Tfs_DefaultCollection.dbo.tbl_ReleaseNoteDetails
  where ReleaseNoteId in (SELECT ReleaseNoteId
FROM Tfs_DefaultCollection.dbo.tbl_ReleaseNote
  where DateCreated between '2013-01-01' and '2013-01-31')
    and FieldName = 'Tracker #'
    and BaseValue = '18570'

哪些对象引用可用于Tfs_DefaultCollection.dbo.tbl_ReleaseNoteDetails?

2 个答案:

答案 0 :(得分:0)

TFS API中没有1to1对象引用,因为您通常不会像数据库那样处理结构。

我从您的描述中了解到,您在变更集中拥有所需的信息。在这种情况下,您可以使用VersionControlServer获取更改集并从中获取信息。

TfsTeamProjectCollection tfsConnection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://TFS:8080/TFS/DefaultCollection"));
VersionControlServer sourceControl = (VersionControlServer)tfsConnection.GetService(typeof(VersionControlServer));
IEnumerable changesets = sourceControl.QueryHistory(ServerPath, VersionSpec.Latest, 0, RecursionType.Full, null, new DateVersionSpec (new DateTime(2013,1,1)), new DateVersionSpec (new DateTime(2013,1,31)), Int32.MaxValue, true, false);
foreach (Changeset change in changesets)
{
  // check where the information is stored in the changeset, may change.Changes
}

只是想要朝着正确的方向前进。

答案 1 :(得分:0)

如果您想轻松查询和搜索,最好创建一个新的工作项字段,并在签入期间关联工作项。工作项在UI中具有完整的查询功能,甚至可以传输到报告仓库。

您可以使用QueryHistoryParameters对象检索特定文件夹,日期范围等的历史记录,然后迭代CheckinNotes进行过滤:

  var projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(
      new Uri("http://localhost:8080/tfs/DefaultCollection"));
  var versionControlServer = projectCollection.GetService<VersionControlServer>();

  var query = new QueryHistoryParameters("$/Scrum/**", RecursionType.Full);
  var changesets = server.QueryHistory(query);

  changesets.Where(cs => cs.CheckinNotes.Any(note => note.PropertyName == "Tracker #" 
       && note.Value == "18570"))

这不会非常快。要获得快速解决方案,请使用工作项关联。