Update on the Windows Phone 7 OData Client Libirary

Update on the Windows Phone 7 OData Client Libirary

  • Comments 0

Team blog post here :

WCF Data Services Client Library and Windows Phone 7 – Next Steps

And some sample code for more context.

With the Linq pattern, here is what the code for downloading the first 10 customers would look like :

DataServiceCollection<Customer> customerCollection = new DataServiceCollection<Customer>(Context);

customerCollection.Load(Context.CreateQuery<Customer>("Customers").Take(10));

Now, with the URI pattern, this is what it looks like :

DataServiceCollection<Customer> customerCollection = new DataServiceCollection<Customer>(Context);

 customerCollection.Load(Context.CreateQuery<Customer>("Customers").Take(10));

 var top10CustomersUri = new Uri("Customers?$top=10", UriKind.RelativeOrAbsolute);
 Context.BeginExecute<Customer>(top10CustomersUri,
      (asResult) =>
      {
        var top10CustomersResponse = Context.EndExecute<Customer>(asResult) as QueryOperationResponse<Customer>;
        customerCollection.Load(top10CustomersResponse);
      }, null);
We can make code a lot easier to read with an Extension method that takes a URI on the LoadAsync method.
public static class DataServiceCollectionExtensions
    {
        public static void LoadAsync<TEntity>(this DataServiceCollection<TEntity> collection, 
DataServiceContext context, Uri requestUri) { context.BeginExecute<TEntity>( requestUri, (asResult) => { var results = context.EndExecute<TEntity>(asResult); collection.Load(results); }, null); } }
Which converts our code to :
var top10CustomersUri = new Uri("Customers?$top=10", UriKind.RelativeOrAbsolute);
customerCollection.LoadAsync(Context, top10CustomersUri);
I’ll make a more detailed blog post later about the WP7 client library for OData and a sample application too.
Leave a Comment
  • Please add 2 and 2 and type the answer here:
  • Post