Prérequis
Maîtrise de C#, notions de lambda et delegates. Expérience avec Entity Framework Core ou accès à des bases de données SQL recommandée.
Durée
2 jours
Contenu Technique de la Formation
LINQ unifie l’accès aux données : objets, SQL, XML et sources externes. Cette formation couvre les query expressions, les opérateurs d’agrégation, les pièges de performance N+1 et l’intégration avec Entity Framework Core pour produire du SQL efficace.
- LINQ to Objects, LINQ to SQL et LINQ to XML — cas d’usage, traduction et différences de performance
- Query expressions vs méthodes d’extension (fluent API) — lambdas, arbres d’expression et syntaxe sucre
- IEnumerable vs IQueryable et exécution différée — composition lazy de requêtes
- Select, Where, GroupBy, Join et Aggregate — opérateurs de projection, filtrage, jointure et agrégation
- Intégration Entity Framework Core, paging et pièges N+1 — eager loading, select projections
- Expression trees et requêtes dynamiques — introspection et génération de filtres
Objectifs de la Formation
Les objectifs visés par cette formation sont :
- Écrire des requêtes LINQ fluent et query expressions pour Objects, Entities et XML
- Composer des requêtes IQueryable EF Core qui génèrent du SQL performant
- Diagnostiquer et corriger les problèmes de performance N+1 et matérialisation prématurée
- Refactorer des boucles impératives foreach en projections LINQ lisibles
- Exploiter les expression trees pour des filtres dynamiques
- Tester des requêtes LINQ avec contextes in-memory et outils de validation SQL
Table des Matières
Fondamentaux LINQ et modèle d’exécution différée
- Syntaxe query expressions vs fluent API
- IEnumerable
et IQueryable : différences fondamentales - Exécution différée : materialize(), ToList(), FirstOrDefault()
- Composition lazy et chaînage d’opérateurs
Opérateurs LINQ et collections
- Select, SelectMany et projections imbriquées
- Where, OfType et filtrage
- OrderBy, ThenBy et tri multi-clés
- GroupBy, aggregate et statistiques
- Join, GroupJoin et unions inter-collections
Patterns de requêtage et composition fluent
- Take, Skip et paging
- Distinct, Union, Intersect et opérations ensemblistes
- All, Any, Contains et prédicats
- Aggregate et réductions fonctionnelles
Intégration Entity Framework Core et performance
- Materialization : ToList(), ToDictionary(), AsEnumerable()
- Include et eager loading vs lazy loading
- Select projections pour réduire les colonnes
- AsNoTracking pour les requêtes read-only
- N+1 detection et Load() vs Include()
Expression trees, dynamisme et testabilité
- Introspection d’expression : paramètres, corps, types
- Compilation et exécution dynamique de lambdas
- Générateurs de filtres génériques avec Expression
> - Remplacement d’expressions et optimisation d’arbres
- Testing : contexts EF in-memory et vérification SQL généré
En Pratique
Syntaxe LINQ et expressions lambda
- Utiliser LINQ to Objects pour filtrer et projeter des collections
- Maîtriser les expressions lambda et les méthodes d'extension
LINQ to SQL et Entity Framework
- Interroger des bases de données avec LINQ to Entities
- Optimiser les requêtes avec Include et ThenInclude
Opérations avancées et transformations
- Joindre, grouper et agréger des données complexes
- Utiliser Take, Skip et OrderBy pour paginer les résultats
Async/await avec LINQ
- Implémenter des requêtes asynchrones avec ToListAsync()
- Gérer les performances et le lazy loading
Modalités et Inscription
Cette formation est proposée selon deux formules pour s'adapter au mieux à vos besoins :
Session régulière
Des sessions sont organisées à intervalles réguliers. Demandez les prochaines dates planifiées pour vous inscrire à la prochaine session.
Sur mesure & intra-entreprise
Vous souhaitez former vos équipes directement dans vos locaux ou adapter le programme technique à votre contexte d'entreprise ? Contactez-nous pour obtenir un devis personnalisé.