Consuming OData Based Rest Service in C#
Nowadays comunication between applications is an active topic with daily usage and a large amount of pratical appliances. While developing an app in witch I had to consume an OData I found out that combining Linq with my code made this operation pretty easy.
The algorithm to consume OData starts with adding a service reference to Visual Studio:
http://rpmachado.files.wordpress.com/2012/08/image_thumb1.png?w=587&h=393
After adding the service reference in which you define the uri to the service, we start building our code.
In your code the algorithm is the following:
- Define the Uri to your OData Service
- Define the context of your odata, which contains all entities exposed by the service.
- Query the context using Linq
- Print the result
Easy and simple.
Example code
public static void Main(string[] args){
Uri serviceUri= new Uri("http://example.host.odataservice.net/service.svc", UriKind.Absolute);
ODataService.ServiceEntities context = new ODataService.ServiceEntities (serviceUri);
context.Credentials = new System.Net.NetworkCredential(Username,Password);
var query = from ServiceObject in context.YourEntity
select ServiceObject ;
foreach (var myObject in query)
{
Console.WriteLine("\n Field1: {0} | Field2: {1}",
myObject .Field1, myObject .Field2);
}
}
That’s it.
Thank you,
Rui Machado
rpmachado.wordpress.com