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
Remarque |
---|
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#)