Language Integrated Query
Language Integrated Query (Requête intégrée au langage, aussi connu sous le nom de LINQ) est un composant du Framework .NET de Microsoft et qui ajoute des capacités d'interrogation sur des données aux langages .NET en utilisant une syntaxe proche de celle de SQL. La plupart des concepts mis en place par LINQ ont été initialement testées dans un projet de recherche Microsoft nommé Cω. LINQ a été mis en production dans le cadre du Framework NET 3.5 le 19 novembre 2007.
LINQ définit un ensemble d’opérateurs de requêtes qui peuvent être utilisés pour effectuer des requêtes, filtrer et projeter des données dans des collections, dans des classes énumérables, dans des structures XML, dans des bases de données relationnelles, et dans des source de données tierce. Bien qu’il permette d’effectuer des requêtes sur n’importe source de données, il exige que les données soit encapsulées dans des objets. En conséquent si la source de données ne stocke pas nativement les données en tant qu’objets, les données doivent être mappées sur le domaine objet correspondant. Les requêtes effectuées à l’aide d’opérateurs LINQ seront soit directement exécutés par le moteur de traitement de LINQ ou soit par un mécanisme d’extension géré par les providers LINQ, qui implémentent un moteur de traitement de requête différent ou convertissent les données dans un format différent afin qu’ils soient exécutés sur un système de stockage de données différent (tels qu’une base de données par exemple). Le résultat de la requête est renvoyé sous forme d’une collection d’objets en mémoire qui peut être énumérée.