1°) Commençons par créer une classe décrivant les pays!


[DataServiceKey("ID")]
public class Pays
{
   public int ID { get; set; }
   public string Nom { get; set; }
   public double Superficie { get; set; }
}

2°) La seconde étape est de créer une classe de "DataContext" permettant le requêtage. Pour ce faire, il faut avoir une (ou des) propriétés renvoyant un IQueryable<T>.

public class CustomDataContext
{
   private static List<Pays> pays = CreePays();
 
   public IQueryable<Pays> Pays 
   { 
      get { return pays.AsQueryable(); 
   }
 
   private static List<Pays> CreePays()
   {
     List<Pays> pays = new List<Pays>();
     pays.Add(new Pays() { ID = 1, Nom = "Belgique", Superficie = 30528 });
     pays.Add(new Pays() { ID = 2, Nom = "France", Superficie = 670922 });
     pays.Add(new Pays() { ID = 3, Nom = "Luxembourg", Superficie = 2586 });
     pays.Add(new Pays() { ID = 4, Nom = "Suisse", Superficie = 41290 });
     return pays;
   }
}

3°) La troisième étape est la mise "en ligne" de notre classe de contexte. Cette mise en ligne permettra le requêtage.

public class WebDataServiceAstoria : DataService<CustomDataContext>
{
   public static void InitializeService(IDataServiceConfiguration config)
   {
      config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
   }
}

4°) Après cette étape, nous avons un service ADO.NET Data Services qui fonctionne ! Voici quelques exemples de requêtes !

- Liste des entités disponibles !

liste_entites.png

- Get des pays !

liste_pays.png

URL : http://localhost:13094/WebSite2/WebDataServiceAstoria.svc/Pays

- Get d'un pays sur base de son ID !

pays_parID.png

URL : http://localhost:13094/WebSite2/WebDataServiceAstoria.svc/Pays(1)

- Get des pays avec la gestion de l'order by !

orderby.png

URL : http://localhost:13094/WebSite2/WebDataServiceAstoria.svc/Pays?$orderby=Superficie%20asc

- Get des pays avec filtre !

filter.png

URL : http://localhost:13094/WebSite2/WebDataServiceAstoria.svc/Pays?$filter=Nom%20eq%20'Belgique'