OData клиент только возвращает последнюю запись в последовательности? - PullRequest
2 голосов
/ 02 ноября 2010

Я надеюсь, что просто неправильно использую API, но по какой-то причине, когда я запрашиваю свой сервис oData из wp7, я получаю только последнюю запись в последовательности. Я уверен, что сервис работает просто отлично, так как я могу просто посетить URL-адрес запроса oData в браузере и получить правильные результаты. Однако следующий метод отображает только один элемент в списке.

Я основал следующий код из примера в этом сообщении в блоге: http://chriskoenig.net/2010/10/30/odata-v2-and-windows-phone-7/

Наблюдаемая коллекция, которая передается, является той, которая связана со списком wpf.

private static void LoadRuntimeData(ObservableCollection<CategoryItem> items)
{
    var catalog = GetCatalog();
    var queryUri = new Uri("/Categories?&$orderby=Name", UriKind.Relative);
    var categories = new DataServiceCollection<Category>(catalog);
    var queryHandle = App.ViewModel.StartQuerying();

    categories.LoadAsync(queryUri);
    categories.LoadCompleted += (e, c) =>
        {
            using (queryHandle)
            {
                var serverItems = categories.Select(k => new CategoryItem
                {
                    Name = k.Name,
                    Description = k.Description
                });

                items.Clear();
                foreach (var item in serverItems)
                {
                    items.Add(item);
                }
            }
        };
}

Любые советы будут с благодарностью.

Редактировать: согласно комментарию ниже, я загрузил исходный код, в котором воспроизводится эта проблема: http://khanviewer.codeplex.com/

1 Ответ

0 голосов
/ 03 декабря 2010

Делая быстрый удар в этом (и я подозреваю, что Крис будет знать лучше).

Но вам не нужно как-то идентифицировать / помечать атрибутом столбец первичного ключа (свойство или свойства, которые определяют уникальность).

Я знаю, что столкнулся с чем-то похожим в RIA Services, и проблема заключалась в том, что я не устанавливал значение для столбца уникального идентификатора. В результате я увидел, что все мои данные сработали, но когда клиент получил данные, он увидел все данные как одну запись.

Jay

...