Institut Supérieure Des Sciences Appliquées et de Technologie de Sousse
Environnement de développement
.NET Framework
FI-GL-A3
Présenté par
Dr. Ikbel Sayahi
[Link]@[Link]
Année Universitaire 2025-2026
5
Entity Framework Core :
une approche ORM pour la persistance
des données
1 Introduction
✓ Dans le développement d’applications modernes, la gestion de la persistance des données constitue
une étape essentielle. Les applications ont besoin de stocker, consulter, modifier et supprimer des
informations de manière efficace et fiable.
✓ Traditionnellement, cette tâche était réalisée à l’aide d’[Link], en écrivant manuellement des
requêtes SQL et en manipulant les résultats ligne par ligne. Bien que cette approche soit puissante, elle
s’avère souvent lourde et source d’erreurs pour les applications complexes.
23/10/2025 Ikbel Sayahi 3
1 Introduction
➢ Un ORM permet de représenter les données d’une base
dans le monde des objets en utilisant un mappage entre
une classe et une table d’une part et entre un attribut (ou
propriété) et une colonne d’autre part.
➢ Pour simplifier cette interaction entre le monde objet (les
classes C#) et le monde relationnel (les tables d’une base
de données), Microsoft a introduit un ORM (Object
Relational Mapper) appelé Entity Framework.
23/10/2025 Ikbel Sayahi 4
1 Introduction
➢ Sa version moderne, Entity Framework Core (EF Core), fournit un ensemble d’outils permettant de :
❖ Représenter les entités de la base de données sous forme de classes C#,
❖ Effectuer automatiquement la traduction entre objets et tables,
❖ Générer et exécuter les requêtes SQL nécessaires,
❖ Maintenir la cohérence des données dans les deux mondes.
23/10/2025 Ikbel Sayahi 5
2 Architecture EF Core
➢ DbContext
C’est est le cœur d’Entity Framework Core. Il représente une session
avec la base de données, gère la connexion, le suivi des entités
(tracking) et les transactions. Il expose des propriétés de type
DbSet<TEntity> pour chaque table, traduit les requêtes LINQ en SQL
et exécute les commandes.
23/10/2025 Ikbel Sayahi 6
2 Architecture EF Core
➢ DbSet<Entity>
Chaque DbSet<TEntity> correspond à une table dans la base de
données et à une collection d’objets du type spécifié.
C’est une table virtuelle manipulée sous la forme d’un objet (on peut y
appliquer les CRUDs)
Exemple:
Interroger les données ([Link]()),
Ajouter ou supprimer des enregistrements ([Link](client)),
23/10/2025 Ikbel Sayahi 7
2 Architecture EF Core
➢ Entity Framework Core
C’est le moteur ORM lui-même. Il est chargé de :
❖ Faire le mapping entre classes et tables,
❖ Générer automatiquement le SQL,
❖ Gérer le modèle de données (migrations, relations, contraintes, etc.),
❖ Assurer la cohérence entre objets C# et données physiques.
EF Core convertit les requêtes LINQ en SQL natif compatible avec le
fournisseur DB utilisé
23/10/2025 Ikbel Sayahi 8
2 Architecture EF Core
➢ Data Provider
❖ C’est le pont entre EF Core et la base de données réelle.
❖ Il traduit les commandes SQL générées par EF Core dans le
dialecte spécifique du SGBD.
23/10/2025 Ikbel Sayahi 9
3 Approches de développement via EF Core
❑ Database First
➢ Pour travailler avec EF Core, il possible de choisir entre deux approches : Database First et Code
First. Le choix de l’approche dépond de la manière dont on conçoit notre solution.
➢ Si vous avez déjà une base de données, EF Core permet de générer automatiquement le code qui
correspond aux tables de la base de données existante à l'aide d’un assistant. Cet assistant est intégré
à VISUAL STUDIO.
23/10/2025 Ikbel Sayahi 10
3 Approches de développement via EF Core
❑ Database First
➢ Par la suite, vous pouvez ajouter votre code métier. Ce type d’approche est adaptée à une conception
où le modèle de la base de données est maitre. L’inconvénient de cette approche est qu’il faut bien
isoler le code généré avec l’assistant du code ajouté par la suite (comme le code de la partie métier).
23/10/2025 Ikbel Sayahi 11
3 Approches de développement via EF Core
❑ Code First
➢ La deuxième approche (Code First) est plus naturelle car on part du code pour générer ou mettre à jour la
base de données. Dans ce cas on n’a plus besoin de faire une isolation et le modèle des classes est
considéré comme maitre.
23/10/2025 Ikbel Sayahi 12
4 Installation EF Core
EF Core ne fait pas partie de .NET Core. Il est disponible sous forme de packages NuGet.
23/10/2025 Ikbel Sayahi 13
4 Installation EF Core
EF Core ne fait pas partie de .NET Core. Il est disponible sous forme de packages NuGet.
23/10/2025 Ikbel Sayahi 14
4 Installation EF Core
EF Core ne fait pas partie de .NET Core. Il est disponible sous forme de packages NuGet.
23/10/2025 Ikbel Sayahi 15
5 Interrogation de la base de données via EF core
Approche Code first
23/10/2025 Ikbel Sayahi 16
5 Interrogation de la base de données via EF core
1. Créer les entités (Etudiant, Classe, Cours,…) et comprendre les relations.
2. Configurer le DbContext pour EF Core et MySQL.
3. Créer la base et les tables via migrations EF.
4. Expérimenter les opérations CRUD avec les associations.
23/10/2025 Ikbel Sayahi 17
5 Interrogation de la base de données via EF core
✓ Créer les entités et comprendre les relations
✓ Une entité est une classe c# représente une table dans la base de données.
✓ Chaque propriété (comme Nom, Age, etc.) correspond à une colonne dans la table.
✓ Les relations représentent les liens logiques entre les tables. Elles sont traduites en clés
étrangères (FK) dans la base de données.
23/10/2025 Ikbel Sayahi 18
5 Interrogation de la base de données via EF core
✓ Créer les entités et comprendre les relations
23/10/2025 Ikbel Sayahi 19
5 Interrogation de la base de données via EF core
✓ Créer les entités et comprendre les relations
Exemple:
23/10/2025 Ikbel Sayahi 20
5 Interrogation de la base de données via EF core
✓ Créer les entités et comprendre les relations
Exemple:
Models/[Link]
23/10/2025 Ikbel Sayahi 21
5 Interrogation de la base de données via EF core
✓ Créer les entités et comprendre les relations
Exemple:
Models/[Link]
23/10/2025 Ikbel Sayahi 22
5 Interrogation de la base de données via EF core
✓ Créer les entités et comprendre les relations
Exemple:
Models/[Link]
23/10/2025 Ikbel Sayahi 23
5 Interrogation de la base de données via EF core
✓ Créer les entités et comprendre les relations
Exemple:
Models/[Link]
23/10/2025 Ikbel Sayahi 24
5 Interrogation de la base de données via EF core
✓ Créer les entités et comprendre les relations
Exemple:
Models/[Link] (table pivot many-to-many)
23/10/2025 Ikbel Sayahi 25
5 Interrogation de la base de données via EF core
✓ Configurer le DbContext pour EF Core et MySQL
Exemple:
23/10/2025 Ikbel Sayahi 26
5 Interrogation de la base de données via EF core
✓ Configurer le DbContext pour EF Core et MySQL
Exemple:
23/10/2025 Ikbel Sayahi 27
5 Interrogation de la base de données via EF core
✓ Configurer le DbContext pour EF Core et MySQL
Exemple:
23/10/2025 Ikbel Sayahi 28
5 Interrogation de la base de données via EF core
✓ Configurer le DbContext pour EF Core et MySQL
Exemple:
23/10/2025 Ikbel Sayahi 29
5 Interrogation de la base de données via EF core
✓ Créer la base et les tables via migrations EF
La migration dans Entity Framework Core (EF Core) est le processus qui permet de créer ou mettre à jour
la base de données MySQL à partir de ton modèle C# (les entités et le DbContext).
Cela crée un dossier Migrations contenant :
•Un fichier [Link] : le code C# qui décrit les
changements à appliquer.
•Un fichier [Link] : une “photo” actuelle de ton
modèle (utile pour les futures migrations).
• EF se connecte à MySQL via la chaîne de connexion,
•EF crée la base
23/10/2025 Ikbel Sayahi 30
5 Interrogation de la base de données via EF core
✓ Exécuter les CRUD
23/10/2025 Ikbel Sayahi 31
5 Interrogation de la base de données via EF core
✓ Exécuter les CRUD
23/10/2025 Ikbel Sayahi 32
5 Interrogation de la base de données via EF core
✓ Exécuter les CRUD
23/10/2025 Ikbel Sayahi 33
5 Interrogation de la base de données via EF core
✓ Exécuter les CRUD
23/10/2025 Ikbel Sayahi 34
5 Interrogation de la base de données via EF core
Database first
23/10/2025 Ikbel Sayahi 35
5 Interrogation de la base de données via EF core
1. Préparer la base dans MySQL (via XAMPP)
2. Créer le projet .NET
3. Installer les packages nécessaires
4. Générer les classes C# à partir de la base existante
5. Utiliser le modèle pour faire du CRUD
23/10/2025 Ikbel Sayahi 36
5 Interrogation de la base de données via EF core
✓ Préparation de la base
Ouvrir Xampp et générer la base de données
23/10/2025 Ikbel Sayahi 37
5 Interrogation de la base de données via EF core
✓ Créer projet et installer les packages
On peut créer le projet manuellement ou via les commandes suivantes:
23/10/2025 Ikbel Sayahi 38
5 Interrogation de la base de données via EF core
✓ Générer le modèle à partir de la base
EF Core va analyser la base MySQL et créer :
•les entités (classes),
•le DbContext,
•et leurs relations automatiques.
dotnet ef dbcontext scaffold "server=localhost;port=3306;database=ef_mysql_demo_dbfirst;user=root;password=;"
[Link] -o Models
Cela crée un dossier Models avec :
•[Link] (le DbContext)
•[Link]
•[Link]
•[Link]
•[Link]
23/10/2025 Ikbel Sayahi 39
5 Interrogation de la base de données via EF core
✓ Utiliser le modèle pour faire les CRUD
23/10/2025 Ikbel Sayahi 40
NEXT …
LE DÉVELOPPEMENT WEB VIA .NET
10/23/2025 Ikbel Sayahi 41