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