Элементы WorkItemCollection слишком медленные для доступа - PullRequest
2 голосов
/ 08 октября 2010

Используя TFS SDK, я запрашиваю рабочие элементы, используя WorkItemStore.Query:

WorkItemCollection workItems = WorkItemStore.Query("SELECT ID from workitems");

foreach(WorkItem wi in workItems)
{
    string Id = wi.Id;
    foreach(Attachment attachment in wi.Attachments)
    {
        Console.Write(attachment.Uri.OriginalString); //SLOW
    }
}

Доступ к элементам из коллекции слишком медленный.Говорит ли он с сервером TFS каждый раз, когда я получаю доступ к члену WorkItem?Есть ли способ построить мой запрос таким образом, чтобы он получал все поля, которые мне нужны, за один раз?

Проблема в том, что сервер TFS находится в оффшорной зоне, и поэтому он медленный.Массовый запрос материала делает его намного быстрее.

РЕДАКТИРОВАТЬ: я не могу запросить поле вложения."attachments" не является допустимым полем.

Ответы [ 2 ]

1 голос
/ 08 октября 2010

Ваш запрос не доставляет вложения. Каждый вызов wi.Attachments будет выполнять другой запрос для получения данных.

0 голосов
/ 08 октября 2010

Ну, ваш запрос указывает, что ему нужно только получить идентификатор из рабочих элементов. Как вы и просили, я подозреваю, что запрос всей информации, которую вы хотите, был бы более эффективным, так как он должен был бы собрать всю эту информацию, прежде чем она вернется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...