Chap 3 Part 1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 6

24/09/2021

Définition
• ORM (Object Relational Mapping, Mapping objet relationnel) officiel de .NET

Chapitre 3: Entity Framework développé par Microsoft en utilisant le langage C# permettant de


manipuler des objets C# . Proposé pour faciliter la tâche aux programmeurs en
leur permettant de ne plus écrire de requêtes SQL dans leurs codes et les

framework Core remplacer par des commandes très faciles.


• Un programme informatique qui joue le rôle d’un traducteur entre le monde
relationnel et le monde objet
ENSEIGNANTE: DR. ING. GHOFRANE FERSI
L’objectif : plus de requêtes SQL dans les classes.

1 2

Définition Définition
Dans les ORM, il y a deux composants : • Entity Framework (EF) était intégré dans .NET framework 3.5 depuis 2008
• Les entités (des classes à implémenter par le développeur) : qui représentent • La version d’EF incluse dans .NET framework est EF6
certaines tables •Version mature, qui supporte les modèles d’héritage complexes
•Le gestionnaire d’entités (une classe qui existe déjà) : à utiliser pour persister les •A partir de EF6.3 , EF est extrait de .NET framework et est devenu dans un
entités dans la base de données. package séparé
Dans le cas d’entity framework : • Il supporte désormais .Net Core 3.0 et les versions d’après incluant .NET5.
• Les entités : des classes décorées (annotées)
•Le gestionnaire d’entités : Linq to Entities

3 4

1
24/09/2021

Définition EF Core en comparaison à EF 6


•EF6 est considéré actuellement comme une version ancienne qui a des limites • EF Core est nouveau et par la suite n’est pas encore aussi mature que EF6
en l’appliquant dans cross-platform et il n’est pas possible d’ajouter de nouveaux
composants •EF Core continue à supporter les éléments suivants:
1. DbContext & DbSet
• Pour utiliser la version ancienne EF6 dans un projet .NET Core 3.0 ou après, 2. Data Model
vous devez ajouter une référence au package dans votre fichier de projet
3. Querying utilisant Linq-to-Entities
<package Reference Include ="Entity Framework" Version="6.4.4" /> 4. Suivi des modifications
Conseil: Il vaut mieux éviter d’utiliser l’ancienne version 5. Enregistrement des changements
6. Migrations

5 6

EF Core en comparaison à EF 6 EF Core en comparaison à EF 6


EF Core va inclure graduellement les fonctionnalités de EF6. Mais il y a des EF Core inclue de nouvelles fonctionnalités qui n’étaient pas supportées par les
fonctionnalités qui ne sont plus supportées par EF Core comme: versions antérieures:
•EDMX/ Graphical Visualization of Model • Many-to-Many sans join entity • Configuration facile des relations
• Entity Splitting
•Entity Data Model Wizard (pour DB-First approach) • Grouper les opérations d’insertion, mise à jour et suppression
• Spatial Data
•ObjectContext API • Lazy loading des données •Support d’inversion de contrôle (IOC)
•Querying using Entity SQL reliées •Contraintes uniques
• Stored procedure mapping
•Automated Migration with DbContext pour CUD • Propriétés de l'ombre (shadow properties)
•Inheritance: Table per type (TPT) operation • Filtre de requête global
• Seed data
•Inheritance: Table per concrete class (TPC) • De meilleurs modèles pour gérer les graphiques d'entités déconnectés
• Automatic migration
7 8

2
24/09/2021

Entity Framework Core EF Core: Fournisseur de base de données


• Entity Framework Core utilise un modèle de fournisseur pour accéder à de
nombreuses bases de données différentes.
• EF Core inclut des fournisseurs en tant que packages NuGet que vous devez
installer.
• Le tableau suivant répertorie les fournisseurs de bases de données et les
packages NuGet pour EF Core.

9 10

EF Core: Fournisseur de base de données Installer EF Core


Pour pouvoir utiliser Entity Framework Core avec le fournisseur de base de
données choisi, il faut faire les étapes suivantes: outils->Gestionnaire de packets
Nugets->Gérer les packages de Nuget pour la solution->parcourir->
Microsoft.EntityFrameworkCore
• Reproduire les mêmes étapes pour ajouter le package relatif à votre fournisseur
de base de données (pour notre cas Microsoft.EntityFrameworkCore.SqlServer)
•Ajouter également le package Microsoft.EntityFrameworkCore.Relational
Pour exécuter les commandes EF Core, il faut aussi ajouter le package
Microsoft.EntityFrameworkCore.Tools

11 12

3
24/09/2021

EF Core: Approches EF Core: Approches


Il existe deux approches :
Code First : L’API EF Core crée la base de données et les tables en utilisant les
migrations basées sur les conventions et les configurations fournies dans votre
domaine de classes.
Database First : EF Core crée le domaine et les classes de contexte en se basant
sur la base de données existante en utilisant les commandes EF Core.
EF Core vise essentiellement l’approche code first et donne un peu de support
pour le Database First approche car le visual designer ou wizard pour le DB
model sont non supportés par EF Core 2.0. Cette approche est bénéfique dans
Domain Driven Design (DDD).

13 14

Code First: Etapes à suivre Code First: Etapes à suivre

•Création d’un projet Console • Entity Framework Core a besoin d’un modèle (Entity Data Model) pour
communiquer avec la base de données
•Intégrer Entity Framework Core et Entity Framework Core SQL Server dans le
projet en utilisant Nuget Package manager • Il construit un modèle basé sur la forme de vos classes de domaine, les
annotations de données et les configurations de Fluent API.
• Créer le modèle (Entity Data Model)
•Le modèle EF comporte trois parties: le modèle conceptuel, le modèle de
• Créer les entités stockage et le mapping entre le modèle conceptuel et de stockage
• Générer la base de données et manipuler les données avec LINQ to Entities • Dans l'approche code-first, EF construit le modèle conceptuel basé sur vos
classes de domaine (classes d'entité), la classe de contexte et les configurations.
• EF Core crée le modèle de stockage et les mappages en fonction du fournisseur
que vous utilisez. Par exemple, le modèle de stockage sera différent pour SQL
Server par rapport à DB2.
15 16

4
24/09/2021

Code First: Etapes à suivre Code First: Etapes à suivre

• EF utilise ce modèle pour les opérations CRUD (Créer, Lire, Mettre à jour,
Supprimer) dans la base de données sous-jacente. Nous devons donc
d'abord créer des classes d'entités et des classes de contexte. Les éléments
suivants sont des classes d'entités simples pour Student et Course :
• Bouton droit sur notre solution (nommée ENISSchool), ajouter classe dans le
dossier modèle, la nommer Student.cs

17 18

Code First: Etapes à suivre Code First: Etapes à suivre


Nous allons de même créer la classe Course.cs

Maintenant, nous créons la classe de contexte. La classe ENISContext est aussi


appelée classe de contexte (context class)

19 20

5
24/09/2021

using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
Code First: Etapes à suivre
using System.Linq;
using System.Text;
using System.Threading.Tasks; • La classe de contexte présentée inclue deux propriétés DbSet<Tentity> pour
Student et Course
namespace ENISSchool
{ • Ces deux vont être mappées à deux tables Students et Courses dans la base de
class ENISContext: DbContext données ENIS
{
• Dans la méthode OnConfiguring(),une instance de DbContextOptionsBuilder est
public DbSet<Student> Students { get; set; }
utilisée pour spécifier quelle est la base de données à utiliser.
public DbSet<Course> Courses { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)


{
optionsBuilder.UseSqlServer(@"Server=.\SQLEXPRESS;Database=SchoolDB;Trusted_Connection=True;");
}
}
}
21 22

Vous aimerez peut-être aussi