Я хотел получить доступ к данным TFS через TFS API и WIQL, используя настраиваемое поле в WIQL, где предложение:
string wiqlQueryDoorsProxy =
"Select * from WorkItems where ([Work Item Type] = 'DoorsProxy' AND [Object Id] = '\" + requirementId + "\')";
где [Идентификатор объекта] — настраиваемое поле. Но API TFS выдал сообщение об исключении:
"TF51005: The query references a field that does not exist. The error is caused by «[Object Id]»."
Определение поля имеет имя = «Идентификатор объекта» и справочное имя = «DoorsTool.DoorsArtifactType.ObjectId». Я попробовал как Object Id, так и DoorsTool.DoorsArtifactType.ObjectId в WIQL. Тот же результат.
Я изменил код следующим образом, и он работал отлично:
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)
{
...
}
}
Но сейчас производительность плохая.
Что я могу сделать. Проблема похожа на это но все же я не могу решить проблему на основе этого обсуждения.