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 !
- Get des pays !
URL : http://localhost:13094/WebSite2/WebDataServiceAstoria.svc/Pays
- Get d'un pays sur base de son ID !
URL : http://localhost:13094/WebSite2/WebDataServiceAstoria.svc/Pays(1)
- Get des pays avec la gestion de l'order by !
URL : http://localhost:13094/WebSite2/WebDataServiceAstoria.svc/Pays?$orderby=Superficie%20asc
- Get des pays avec filtre !
URL : http://localhost:13094/WebSite2/WebDataServiceAstoria.svc/Pays?$filter=Nom%20eq%20'Belgique'