title: Add Paging Capabilites To DataServiceQuery for Bing Search API
body: <p>I'm trying to to add to the Bing Search (Web Results Only) proxy so that I can go to different result pages. I know I'm supposed to use the parameter $skip, but because it has a dollar sign in it, i cannot get it to output the URL correctly.</p>
  
  <p>I can only get it to show incorrectly (it needs the dollar sign after &amp;:</p>
  
  <p><a href="https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/Web()?Query=" rel="nofollow">https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/Web()?Query=</a>'xbox'&amp;Page=2</p>
  
  <p>... Or give me the following error :</p>
  
  <p>{Error translating Linq expression to URI: Can't add query option '$Page' because it begins with reserved character '$'.}</p>
  
  <p>Here is my code (My addition is at the bottom). Any help would be greatly appreciated. Thanks!</p>
  
  <pre><code>    public BingSearchContainer(Uri serviceRoot) : 
              base(serviceRoot) {
      }
  
      /// &lt;summary&gt;
      /// &lt;/summary&gt;
      /// &lt;param name="Query"&gt;Bing search query Sample Values : xbox&lt;/param&gt;
      /// &lt;param name="Market"&gt;Market. Note: Not all Sources support all markets. Sample Values : en-US&lt;/param&gt;
      /// &lt;param name="Adult"&gt;Adult setting is used for filtering sexually explicit content Sample Values : Moderate&lt;/param&gt;
      /// &lt;param name="Latitude"&gt;Latitude Sample Values : 47.603450&lt;/param&gt;
      /// &lt;param name="Longitude"&gt;Longitude Sample Values : -122.329696&lt;/param&gt;
      /// &lt;param name="WebFileType"&gt;File extensions to return Sample Values : XLS&lt;/param&gt;
      public DataServiceQuery&lt;WebResult&gt; Web(String Query, String Market, String Adult, Double? Latitude, Double? Longitude, String WebFileType, String Page) {
          if ((Query == null)) {
              throw new System.ArgumentNullException("Query", "Query value cannot be null");
          }
          DataServiceQuery&lt;WebResult&gt; query;
          query = base.CreateQuery&lt;WebResult&gt;("Web");
          if ((Query != null)) {
              query = query.AddQueryOption("Query", string.Concat("\'", System.Uri.EscapeDataString(Query), "\'"));
          }
          if ((Market != null)) {
              query = query.AddQueryOption("Market", string.Concat("\'", System.Uri.EscapeDataString(Market), "\'"));
          }
          if ((Adult != null)) {
              query = query.AddQueryOption("Adult", string.Concat("\'", System.Uri.EscapeDataString(Adult), "\'"));
          }
          if (((Latitude != null) 
                      &amp;&amp; (Latitude.HasValue == true))) {
              query = query.AddQueryOption("Latitude", Latitude.Value);
          }
          if (((Longitude != null) 
                      &amp;&amp; (Longitude.HasValue == true))) {
              query = query.AddQueryOption("Longitude", Longitude.Value);
          }
          if ((WebFileType != null)) {
              query = query.AddQueryOption("WebFileType", string.Concat("\'", System.Uri.EscapeDataString(WebFileType), "\'"));
          }
          if ((Page != null))
          {
              query = query.AddQueryOption("Page", Page);
          }
          return query;
      }
  }
  </code></pre>