title: OData "where ID in list" query
body: <p>I have an OData service where I'm trying to filter by a list of IDs; the SQL equivalent would be something like:</p>
  
  <pre><code>SELECT * FROM MyTable WHERE TableId IN (100, 200, 300, 400)
  </code></pre>
  
  <p>The property I'm trying to filter on is typed as an Int32. I've tried the following, which gives me an error "Operator 'add' incompatible with operand types 'Edm.String' and 'Edm.Int32'":</p>
  
  <pre><code>string ids = ",100,200,300,400,";
  from m in provider.Media where ids.Contains("," + t.media_id + ",")
  </code></pre>
  
  <p>as well as</p>
  
  <pre><code>string ids = ",100,200,300,400,";
  from m in provider.Media where ids.Contains("," + t.media_id.ToString() + ",")
  </code></pre>
  
  <p>and</p>
  
  <pre><code>string ids = ",100,200,300,400,";
  from m in provider.Media where ids.Contains("," + Convert.ToString(t.media_id) + ",")
  </code></pre>
  
  <p>and</p>
  
  <pre><code>string ids = ",100,200,300,400,";
  from m in provider.Media where ids.Contains(string.Concat(",", t.media_id, ","))
  </code></pre>
  
  <p>As you can see, currently I'm using LINQ to query the service.</p>
  
  <p>Is there a way I can do what I'm trying to, or am I stuck constructing a text filter and using AddQueryOption, and iterating through the list and manually adding "or media_id eq 100" clauses?</p>