Tengo un servicio OData donde intento filtrar por una lista de ID; el equivalente SQL sería algo así como:OData consulta "donde ID en la lista"
SELECT * FROM MyTable WHERE TableId IN (100, 200, 300, 400)
La propiedad que estoy tratando de filtrar se escribe como un Int32. He intentado lo siguiente, que me da un error "Operador 'añadir' 'incompatible con Edm.String' tipos de operando y 'Edm.Int32'":
string ids = ",100,200,300,400,";
from m in provider.Media where ids.Contains("," + t.media_id + ",")
, así como
string ids = ",100,200,300,400,";
from m in provider.Media where ids.Contains("," + t.media_id.ToString() + ",")
y
string ids = ",100,200,300,400,";
from m in provider.Media where ids.Contains("," + Convert.ToString(t.media_id) + ",")
y
string ids = ",100,200,300,400,";
from m in provider.Media where ids.Contains(string.Concat(",", t.media_id, ","))
Como puede ver, actualmente estoy usando LINQ para consultar el servicio.
¿Hay alguna manera de hacer lo que intento, o estoy atascado construyendo un filtro de texto y usando AddQueryOption, y recorriendo la lista y agregando manualmente las cláusulas "o media_id eq 100"?
https://gist.github.com/mausch/6893533 –