我正在玩新Netflix OData feed(http://odata.netflix.com/Catalog/)并遇到一些问题。我正在尝试同时学习LINQ,但很难做到我认为非常简单的事情。
我想返回与给定流派相匹配的标题列表。标题对象包含一系列类型。我不确定如何编写此查询。我在下面的尝试似乎无法使用LINQPad。
from t in Titles
where t.Genres.Name.Contains("ABC")
select t
答案 0 :(得分:7)
我能够使用LINQ获得我的结果:
from g in Genres
from t in g.Titles
where g.Name == "Horror"
select t
这样我就不需要使用Expand了。我也可以使用网址:http://odata.netflix.com/Catalog/Genres('Horror')/Titles()来获得相同的结果。 Chris Woodruff的这个post帮助我理解了这个问题。
答案 1 :(得分:1)
如果您收到DataServiceQueryException以及消息:请求版本'1.0'对于响应而言太低。支持的最低版本为“2.0”。
您需要将.Net版本升级到.Net Framework 4并下载LINQPad for .NET Framework 4.0
答案 2 :(得分:0)
凯尔, 这将为您提供Genre
所有电影的列表(from g in Genres.Expand("Titles")
where g.Name == "Horror"
select g).Dump();
这将在LinqPad中创建以下URL
/Catalog/Genres('Horror')?$expand=Titles
有趣的是我需要使用.Expand
语法来获取它。
当我使用浏览器浏览netflix odata feed并想要相同的数据时,我可以使用以下URL获取它:http://netflix.cloudapp.net/Catalog/Genres('恐怖')/标题
必须有一种方法可以在没有.Expand