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 de la requête. 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.

L'illustration suivante représente ce flux de données général.

Diagramme d'exécution de la requête

Requêtes LINQ to SQL

RemarqueRemarque

La plupart des méthodes et opérateurs sur les types intégrés .NET Framework ont des traductions directes en SQL.Ceux que LINQ ne peut pas traduire génèrent des exceptions runtime.Pour plus d'informations, consultez Mappage de type SQL-CLR (LINQ to SQL).

Le tableau suivant affiche les ressemblances et différences entre les éléments de requête 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)

IEnumerable générique

IQueryable générique

Spécification de la source de données

Utilise la clause From (Visual Basic) ou la clause 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 Introduction aux 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 de relations (LINQ to SQL).

Exécution distante / exécution locale

 

Pour plus d'informations, consultez Comparaison entre une exécution de requête locale et une exécution de requête distante (LINQ to SQL).

Transmission en continu / interrogation mise en cache

Non applicable dans un scénario de mémoire locale

 

Voir aussi

Concepts

Introduction aux requêtes LINQ (C#)

Opérations de requête LINQ de base (C#)

Relations des types dans des opérations de requête LINQ (C#)

Autres ressources

Concepts relatifs aux requêtes dans LINQ to SQL