Vous êtes sur la page 1sur 18

§ C’est un Object/Relational Mapping (ORM)

§ Outil permettant de manipuler des données


relationnelles (une table d’une base de données) en tant
que des objets.

§ Permet de se concentrer sur la logique de l’application


plutôt que sur les opérations d’accès aux bases de
données (connexion/déconnexion, formuler des
requêtes).

66
§Utilisé selon trois scénarios :
§ Database first
§ Générer des classes (Modèles) à partir d’une base de
données existante
§ Code first
§ Créer la base de données à partir de classes (Modèles)
§ Model first
§ Créer les classes (Modèles) et la base de données à
partir de EF designer dans VS
67
§ Database first
§ Générer des classes
(Modèles) à partir d’une
base de données existante

68
§ Code first
§ Créer la base de données
à partir de classes
(Modèles)

69
§ Model first
§ Créer les classes
(Modèles) et la base
de données à partir de
EF designer dans VS

70
§ Une classe qui hérite de DbContext
§ Gère les modèles à l’aide de DbSet<T>

§ Implémente le tracking d’identité de modification sur les objets pour les opérations CRUD

§ Fournit l’accès à la base de données

§ Dans le cas d’un nombre important de modèles, il est recommandé d’utiliser


plusieurs DBContext

§ Utiliser NuGet Package Manager pour référencer Entity framework

71
§ DbSet<T>:

§ Collection de générique d’entité unique

§ Définit les opérations CRUD

§ Utiliser avec DbContext pour interroger la base de données

72
Table : Clients
Définit les opérations CRUD

Ligne de type Client


73
§ Etapes :

1. Ajouter les paramètres de connexion ConnectionStrings dans le fichier


appsettings.json
§ Serveur

§ Nom de la base

§ User

§ password

2. Ajouter ce service à l’application dans Programs.cs


3. Initiation la classe DBContext avec les paramètres
74
appsettings.json
"ConnectionStrings": {
"Nom_Con" :
"SERVER = nom_serveur;
USER = utilisateur;
PASSWORD = mot_de_passe; program.cs
DATABASE = nom_base_donnees"
} builder.Services.AddDbContext< MaClasseDBContext >(
options =>
options.UseSqlServer(
builder.Configuration.GetConnectionString("Nom_con"))
);
DBClientContext.json
public class MaClasseDBContext : DbContext
{
public MaClasseDBContext(DbContextOptions<MaClasseDBContext> options) : base(options)
{} 75
}
§Pour créer la base de données, sur le SGBD,
§Avec .NET Core CLI :
1. dotnet ef migrations add InitialCreate
2. dotnet ef database update

§Avec Package Manager CLI :


1. Add-Migration InitialCreate
2. Update-Database

76
§ La plateforme offre plusieurs méthodes qui permettent

d’éxecuter les opérations CRUD sur une base de


données:
§ Add

§ Remove

§ Update

77
§ DbContext permet de modifier les propriétés d’entité et

de les rendre persistantes dans la base de données.


§ Il faut appeler la méthode SaveChanges

§ DbContext suit automatiquement toutes les modifications

apportées aux entités

78
Modèle: Personne représente une table dans la base de données

Objet de type Personne

Personne pr = new Personne(){


Id = 1,
Nom = "Toto"
Prenom = "Titi"
Age = 20
};
79
Personne pr = new Personne(){
Id = 1,
Nom = "Toto"
Prenom = "Titi"
Age = 20
};
1- Ajouter pr au DbContext (Entity_Tracker)
DbPersonneContext.Personne.Add(pr);

2- Persister pr
DbPersonneContext.SaveChanges();
80
Trouver une personne par son Id:
var personne = DbPersonneContext.Personne.Find(Id);

Supprimer la personne
DbPersonneContext.Personne.Remove(personne);

Toujours l’appel de :
DbPersonneContext.SaveChanges();
81
§ On pourra générer les modèles a partir de de la base de
données avec l’une des commandes suivantes :
Scaffold-DbContext "Server=localhost;Database=DBFirstProjectDB;
Package Manager
user=sa; password=Youness@; Trusted_Connection=True;"
Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

dotnet ef DbContext Scaffold


"Server=localhost ;Database=DBFirstProjectDB;
DotNet CLI
user=sa; password=Youness@; Trusted_Connection=True;"
Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

Vérifier le dossier Models 82

Vous aimerez peut-être aussi