У меня есть служба OData, где я пытаюсь отфильтровать список идентификаторов; эквивалент SQL будет примерно таким:
SELECT * FROM MyTable WHERE TableId IN (100, 200, 300, 400)
Свойство, которое я пытаюсь фильтровать, набирается как Int32. Я пробовал следующее, что дает мне ошибку "Operator" add 'несовместим с типами операндов "Edm.String" и "Edm.Int32":
string ids = ",100,200,300,400,";
from m in provider.Media where ids.Contains("," + t.media_id + ",")
а также
string ids = ",100,200,300,400,";
from m in provider.Media where ids.Contains("," + t.media_id.ToString() + ",")
и
string ids = ",100,200,300,400,";
from m in provider.Media where ids.Contains("," + Convert.ToString(t.media_id) + ",")
и
string ids = ",100,200,300,400,";
from m in provider.Media where ids.Contains(string.Concat(",", t.media_id, ","))
Как вы можете видеть, в настоящее время я использую LINQ для запроса службы.
Есть ли способ, которым я могу сделать то, что я пытаюсь сделать, или я задерживаю построение текстового фильтра и использование AddQueryOption и повторяю его через список и добавляя вручную предложения или ссылки media_id eq 100?