Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous définissez des requêtes LINQ to SQL à l’aide de 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 dans des requêtes SQL équivalentes et les envoie au serveur pour traitement. Plus précisément, 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 les résultats de la requête en tant que DataReader. Le fournisseur LINQ to SQL traduit les résultats ADO en une IQueryable collection d’objets utilisateur.
Remarque
La plupart des méthodes et opérateurs sur les types intégrés .NET Framework ont des traductions directes vers SQL. Celles que LINQ ne peut pas traduire génèrent des exceptions d’exécution. Pour plus d’informations, consultez SQL-CLR Mappage de type.
Le tableau suivant présente les similitudes et les différences entre les éléments de requête LINQ et LINQ to SQL.
| Élément | Requête LINQ | Requête LINQ vers SQL |
|---|---|---|
| Type de retour de la variable locale qui contient la requête (pour les requêtes qui retournent des séquences) | Générique IEnumerable |
Générique IQueryable |
| Spécification de la source de données | Utilise la From clause (Visual Basic) ou from (C#) |
Identique |
| Filtrage | Utilise la Where/where clause |
Identique |
| Regroupement | Utilise la Group…By/groupby clause |
Identique |
| Sélection (projection) | Utilise la Select/select clause |
Identique |
| Exécution différée et exécution immédiate | Voir Présentation des requêtes LINQ (C#) | Identique |
| Implémentation de jointures | Utilise la Join/join clause |
Peut utiliser la Join/join clause, mais utilise plus efficacement l’attribut AssociationAttribute . Pour plus d’informations, consultez Interrogation avec les relations. |
| Exécution distante et locale | Pour plus d’informations, consultez Exécution à distance et exécution locale. | |
| Transmission en continu / interrogation mise en cache | Non applicable dans un scénario de mémoire locale |