Я играю вокруг с новым Netflix канал OData (http://odata.netflix.com/Catalog/) и имею некоторые проблемы. Я пытаюсь изучить LINQ одновременно, но испытываю затруднения при выполнении того, что я думал, был довольно простым.
Я хотел бы возвратить список Заголовков, которые соответствуют данному Жанру. Объект Заголовков содержит набор Жанров. Я не уверен, как записать этот запрос. Моя попытка ниже, кажется, не работает с помощью LINQPad.
from t in Titles
where t.Genres.Name.Contains("ABC")
select t
Кайл, Это даст вам список всех фильмов по жанрам
(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 ('Ужас') / Заголовки
Должен быть способ добраться до этого без .Развернуть
Если вы получаете исключение DataServiceQueryException вместе с сообщение: Версия запроса '1.0' слишком мала для ответа. Самая низкая поддерживаемая версия - 2.0 .
Вам необходимо обновить свою версию .Net до .Net Framework 4 и загрузить LINQPad для .NET Framework 4.0
Мне удалось получить свои результаты с помощью 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 () , чтобы получить те же результаты. Этот пост Криса Вудраффа помог мне разобраться в проблеме.