2010-04-20 16 views
5

Estoy jugando con el nuevo Netflix OData feed (http://odata.netflix.com/Catalog/) y tengo algunos problemas. Estoy tratando de aprender LINQ al mismo tiempo, pero tengo dificultades para hacer lo que pensé que iba a ser bastante simple.Utilice LINQ para consultar la colección de OData anidada

Me gustaría devolver una lista de títulos que coincidan con un género determinado. El objeto Títulos contiene una colección de Géneros. No estoy seguro de cómo escribir esta consulta. Mi intento a continuación no parece funcionar usando LINQPad.

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

Respuesta

1

Si está recibiendo una DataServiceQueryException junto con el mensaje: Solicitud versión '1.0' es demasiado baja para la respuesta. La versión más baja admitida es '2.0'.

Necesita actualizar su versión de .Net a .NET Framework 4 y descarga LINQPad para .NET Framework 4.0

+0

Estoy usando LINQPad v4.13.4 que creo que es la versión .net 4. –

0

Kyle, Esto le dará una lista de todas las películas por Género

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

esto crea la siguiente URL en LINQPad

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

Es interesante que tenía que utilizar el sy .Expand ntax para obtenerlo. Cuando hojeo al Netflix odata alimentar con mi navegador y quiero los mismos datos que puedo conseguirlo con la siguiente URL: http://netflix.cloudapp.net/Catalog/Genres ('horror')/Títulos

Tiene que haber una manera de llegar a ella sin .Expand

+0

Usted escribió Kyke, en lugar de Kyle –

7

pude conseguir mis resultados utilizando el LINQ:

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

de esta manera no necesito utilizar Expandir. También puedo usar la URL: http://odata.netflix.com/Catalog/Genres('Horror')/Titles() para obtener los mismos resultados. Este post de Chris Woodruff me ayudó a entender el problema.

Cuestiones relacionadas