0

我想使用 WIQL where 子句中的自定义字段通过 TFS API 和 WIQL 访问 TFS 数据:

string wiqlQueryDoorsProxy = "Select * from WorkItems where ([Work Item Type] = 'DoorsProxy' AND [Object Id] = '\" + requirementId + "\')";

其中 [Object Id] 是自定义字段。但是 TFS API 给出了异常消息:

"TF51005: The query references a field that does not exist. The error is caused by «[Object Id]»."

字段定义的名称 =“Object Id”,参考名称 =“DoorsTool.DoorsArtifactType.ObjectId”。我在 WIQL 中尝试了 Object Id 和 DoorsTool.DoorsArtifactType.ObjectId。结果相同。

我将代码更改如下,它运行良好:

string wiqlQueryDoorsProxy ="Select * from WorkItems where ([Work Item Type] = 'DoorsProxy' )"; WorkItemCollection witCollectionDoorsProxy = wiStore.Query(wiqlQueryDoorsProxy); foreach (WorkItem workItemDoorsProxy in witCollectionDoorsProxy) { workItemDoorsProxy.Open(); if (workItemDoorsProxy.Fields["Object Id"].OriginalValue.ToString() == requirementId) { ... } }

但是现在性能很差。

我能做些什么。问题看起来与类似,但我仍然无法根据该讨论解决问题。

4

1 回答 1

1

方法是首先在 Visual Studio 中创建您想要的查询。一旦你让它工作,你可以“另存为”到本地磁盘并在记事本中打开它。您可以从那里复制查询。

于 2015-06-02T16:07:41.030 回答