Partager via


Requêtes LINQ to SQL

Vous définissez des requêtes LINQ to SQL en utilisant la même syntaxe que dans LINQ. La seule différence est que les objets référencés dans vos requêtes sont mappés aux éléments d'une base de données. Pour plus d’informations, consultez Introduction aux requêtes LINQ (C#).

LINQ to SQL traduit les requêtes que vous écrivez en requêtes SQL équivalentes et les envoie au serveur pour traitement. Plus spécifiquement, votre application utilise l’API LINQ to SQL pour demander l’exécution des requêtes. Le fournisseur LINQ to SQL transforme ensuite la requête en texte SQL et délègue l’exécution au fournisseur ADO. Le fournisseur ADO retourne des résultats de la requête en tant que DataReader. Le fournisseur LINQ to SQL traduit les résultats ADO en une collection IQueryable d’objets utilisateur.

Notes

La plupart des méthodes et des opérateurs sur les types intégrés du .NET Framework ont des traductions directes en SQL. Ceux que LINQ ne peut pas traduire génèrent des exceptions à l’exécution. Pour plus d’informations, consultez Mappage des types SQL-CLR.

Le tableau suivant montre les similarités et les différences entre les éléments des requêtes LINQ et LINQ to SQL.

Élément Requête LINQ Requête LINQ to SQL
Type de retour de la variable locale qui contient la requête (pour les requêtes qui retournent des séquences) Generic IEnumerable Generic IQueryable
Spécification de la source de données Utilise la clause From (Visual Basic) ou from (C#) Identique
Filtrage Utilise la clause Where/where Identique
Regroupement Utilise la clause Group…By/groupby Identique
Sélection (projection) Utilise la clause Select/select Identique
Exécution différée / exécution immédiate Consultez Présentation des requêtes LINQ (C#) Identique
Implémentation de jointures Utilise la clause Join/join Peut utiliser la clause Join/join, mais utilise plus efficacement l’attribut AssociationAttribute. Pour plus d’informations, consultez Interrogation avec les relations.
Exécution distante / exécution locale Pour plus d’informations, consultez Exécution locale et distante.
Transmission en continu / interrogation mise en cache Non applicable dans un scénario de mémoire locale

Voir aussi