Batching Queries using the ADO.NET Data Services CLient library


Did you know you could execute batch queries using the Data Services client library ?


The API is ExecuteBatch for Synchronous access and Begin/End ExecuteBatch for asynchronous scenarios.


1) Batching a set of URI Queries .


The ExecuteBatch API accepts an array of DataServiceRequest objects.
Consider this example , you want to batch queries to be sent to the “Products” and “Categories” entity sets of a northwind service.


2) Batching Linq Queries


If you want to use strongly types Linq queries instead of string based URI queries , you can use the linq support to generate the linq query


3) How do I Identify the response if I make duplicate requests with the same ElementType ?


Consider this situation , You make 2 requests both of type DataServiceRequest<Products>  , how do you identify
which response is for which request ?


One of the scenarios  I can think of , is that the entity set contains multiple types related via inheritance .


ex: Customers entity set contains instances of types HappyCustomers and HappierCustomers inheriting from Customers.


The QueryOperationResponse type contains a Query property which returns the DataServiceRequest that this response corresponds to .


You can pass along the requests you made in the batch as a state to the callback and then compare the Query property of the QueryOperationResponse
to match the response to the request.


ex:


Comments (2)

  1. Thank you for submitting this cool story – Trackback from DotNetShoutout