Prérequis
Bonne maîtrise de C# et de la programmation orientée objet. Connaissance des bases de SQL et des requêtes relationnelles. Familiarité avec Visual Studio ou Rider et avec un projet .NET Core / .NET standard.
Durée
3 jours
Contenu Technique de la Formation
Cette formation couvre la mise en œuvre d’Entity Framework Core comme ORM de référence pour les applications .NET modernes. Elle s’adresse aux développeurs qui souhaitent structurer leur accès aux données autour d’un DbContext, exploiter les migrations et écrire des requêtes LINQ to Entities efficaces.
- DbContext, DbSet et configuration Fluent API ou Data Annotations
- Modélisation Code First, génération de migrations et évolution du schéma
- Requêtes LINQ to Entities : projections, filtres, jointures et agrégations
- Change Tracker, états d’entités et sauvegarde en batch avec SaveChangesAsync
- Chargement des données : Eager (Include), Lazy et Explicit loading, pièges N+1
- Performance et optimisation : AsNoTracking, requêtes compilées, logs SQL générés
Objectifs de la Formation
Les objectifs visés par cette formation sont :
- Concevoir un modèle de données avec EF Core en Code First et générer les migrations associées
- Écrire des requêtes LINQ to Entities optimisées et lire le SQL généré par le provider
- Diagnostiquer et corriger les problèmes de performance courants (N+1, matérialisation prématurée)
- Intégrer EF Core dans une architecture ASP.NET Core avec injection de DbContext
- Mettre en place une stratégie de tests avec un contexte in-memory ou SQLite
Table des Matières
Mise en place d’EF Core dans un projet .NET
- Installation des packages et providers (SQL Server, PostgreSQL, SQLite)
- Configuration du DbContext et enregistrement dans le conteneur DI
- Chaîne de connexion et gestion des environnements
Modélisation du domaine en Code First
- Définition des entités, clés primaires et relations
- Fluent API vs Data Annotations : quand et comment choisir
- Conventions, index et contraintes
Migrations et évolution du schéma
- Création, application et rollback de migrations
- Gestion des migrations en équipe et en CI
- Seed de données et initialisation
Requêtes LINQ to Entities et traduction SQL
- Projections, filtres, jointures et GroupBy
- IQueryable vs IEnumerable et exécution différée
- Logging du SQL généré et analyse des plans
Performance, suivi des entités et bonnes pratiques
- AsNoTracking et contextes en lecture seule
- Chargement eager, lazy et split queries
- Requêtes compilées et benchmarks
Intégration et tests
- Injection de DbContext dans une application ASP.NET Core
- Tests avec base in-memory et SQLite
- Patterns Repository et Unit of Work : intérêt et limites
En Pratique
Mise en place d'un projet EF Core Code First
- Configuration du DbContext et enregistrement via injection de dépendances
- Génération d'un modèle initial ciblant SQL Server, PostgreSQL ou SQLite
Migrations et évolution du schéma relationnel
- Création et application de migrations sur un schéma évolutif
- Gestion des rollbacks et du seed de données d'initialisation
Requêtes LINQ to Entities et analyse du SQL généré
- Écriture de projections, jointures et agrégations optimisées
- Lecture des logs SQL pour valider le plan d'exécution
Diagnostic et correction des problèmes de performance
- Identification et résolution du problème N+1 sur un cas réel
- Intégration d'AsNoTracking et de requêtes compilées dans une application ASP.NET Core
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é.