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.