Language Integrated Query (LINQ) est un composant Microsoft .NET Framework qui ajoute des capacités natives d'interrogation de données aux langages .NET. Veuillez envisager d'utiliser des balises plus détaillées, le cas échéant, par exemple [linq-to-sql], [linq-to-entity] / [entity-framework] ou [plinq]

Cette balise est destinée aux questions sur linq, un DSL (Domain Specific Language) basé sur .NET, introduit dans .net-3.5, pour interroger des sources de données telles que des bases de données, des fichiers XML ou des listes d'objets en mémoire.

Veuillez envisager d'utiliser des balises plus détaillées, le cas échéant, par exemple linq-to-sql, linq-to-entity/ entity-framework, ou plinq.

À propos de LINQ

Toutes les sources de données peuvent être interrogées en utilisant la même syntaxe exacte, lisible et facile à utiliser - ou plutôt des syntaxes, car LINQ prend en charge deux notations:

  • LINQ en ligne ou syntaxe de requête, où les requêtes sont exprimées dans un langage de type SQL, avec des dialectes dans les deux C #et VB.NET.

  • LINQ ou opérateurs de requête fluides, où les requêtes sont exprimées sous la forme expressions lambdaet peuvent être liées (LINQed?) À l'aide de une syntaxe fluide.

Toutes les opérations de requête LINQ se composent de trois actions distinctes:

  1. Obtenez la source de données.
  2. Créez la requête.
  3. Exécutez la requête.

Implémentations majeures:

Langages .NET: C #, F #, VB.NET

Quelques exemples:

Syntaxe fluide (C #)

var result = dbContext.Products
                      .Where(p => p.Category.Name == "Toys" && p.Price >= 2.50)
                      .Select(p => p.Name);

Syntaxe de requête (C #)

var result = from product in dbContext.Products
             where product.Category.Name == "Toys"
             where product.Price >= 2.50
             select product.Name;

Syntaxe de requête (VB.NET)

Dim result = From product in dbContext.Products _
             Where product.Category.Name = "Toys" _
             Where product.Price >= 2.50 _
             Select product.Name

Cette requête renvoie le nom de tous les produits de la catégorie "Jouets" avec un prix supérieur ou égal à 2,50.

Les saveurs

LINQ se décline en plusieurs versions, les plus notables étant

D'autres implémentations de LINQ peuvent être trouvées sur Internet, telles que LINQ to SharePoint, LINQ to Twitter, LINQ to CSV, LINQ to Excel, LINQ to JSONet LINQ to Google.

Il existe également de nombreuses extensions pour LINQ disponibles, qui ajoutent plus d'opérateurs à ceux proposés par .NET. Divers projets sont des projets open source, par exemple MoreLINQ.

Ressources