LINQ : Language INtegrated Query

Aller plus loin avec LINQ

Les clauses obligatoires

Vous allez découvrir une liste non-exhaustive des clauses LINQ ainsi qu'une brève explication sur leurs utilisations.

Tout commence par from...

la clause from

... et se termine par select ou group by

select ou group by

Les clauses optionelles

where expression
join var in queryable on jointure_expression
orderby var.property (ascending | descending)
into var

Les opérateurs

Comme le propose le langage SQL, LINQ propose un ensemble d'opérateurs prédéfinis

LINQ propose également quatre opérations de manipulation des ensembles

Les précautions : LINQ to Object

LINQ to Object propose de requêter les collections d'objets comme des sources de données. Evidemment, la magie qui réside dans le principe de "list comprehesion" est à manipuler avec précaution. Faire la somme des éléments d'une liste semble assez simple :

int totalStock = (from p in products
select p.UnitsInStock).Sum();

Malheureusement, ce code très simple génère une première boucle qui ne sélectionne que des entiers. Ensuite, cette nouvelle collection est parcourue par la méthode Sum() pour en faire l'addition. Pour résoudre le problème, les opérateurs LINQ fournissent une signature plus adaptée. Elle permet de ne selectionner que la propriété cible durant l'itération de la méthode Sum().

int totalStock = products.Sum(p => p.UnitsInStock);