Используйте LINQ для запросов вложенного набора OData

Я играю вокруг с новым Netflix канал OData (http://odata.netflix.com/Catalog/) и имею некоторые проблемы. Я пытаюсь изучить LINQ одновременно, но испытываю затруднения при выполнении того, что я думал, был довольно простым.

Я хотел бы возвратить список Заголовков, которые соответствуют данному Жанру. Объект Заголовков содержит набор Жанров. Я не уверен, как записать этот запрос. Моя попытка ниже, кажется, не работает с помощью LINQPad.

from t in Titles
where t.Genres.Name.Contains("ABC")
select t

5
задан Kyle Russell 20 April 2010 в 23:50
поделиться

3 ответа

Кайл, Это даст вам список всех фильмов по жанрам

(from g in Genres.Expand("Titles")
where g.Name == "Horror"
select g).Dump();

Это создаст следующий URL-адрес в LinqPad

/Catalog/Genres('Horror')?$expand=Titles

Его Интересно, что мне нужно было использовать синтаксис .Expand , чтобы получить его. Когда я просматриваю канал netflix odata в моем браузере и хочу те же данные, я могу получить их по следующему URL: http://netflix.cloudapp.net/Catalog/Genres ('Ужас') / Заголовки

Должен быть способ добраться до этого без .Развернуть

0
ответ дан 14 December 2019 в 04:33
поделиться

Если вы получаете исключение DataServiceQueryException вместе с сообщение: Версия запроса '1.0' слишком мала для ответа. Самая низкая поддерживаемая версия - 2.0 .

Вам необходимо обновить свою версию .Net до .Net Framework 4 и загрузить LINQPad для .NET Framework 4.0

1
ответ дан 14 December 2019 в 04:33
поделиться

Мне удалось получить свои результаты с помощью LINQ:

from g in Genres
from t in g.Titles
where g.Name == "Horror"
select t

Таким образом, мне не нужно использовать Expand. Я также могу использовать URL: http://odata.netflix.com/Catalog/Genres ('Horror') / Titles () , чтобы получить те же результаты. Этот пост Криса Вудраффа помог мне разобраться в проблеме.

7
ответ дан 14 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: