Blog ENI : Toute la veille numérique !
Dernière chance (fin le 29/02) : -25€ dès 75€ sur les livres en ligne, vidéos... code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. C# 10
  3. Création du modèle de données
Extrait - C# 10 Développez des applications Windows avec Visual Studio 2022
Extraits du livre
C# 10 Développez des applications Windows avec Visual Studio 2022
4 avis
Revenir à la page d'achat du livre

Création du modèle de données

Introduction

Microsoft met à disposition une version Express de SQL Server 2019, son moteur de base de données, en version gratuite. SQL Server vous permet de créer des bases de données relationnelles pour stocker et récupérer les données de vos applications grâce au langage SQL et aux classes fournies par le Framework .NET. Pour suivre les exemples de ce chapitre, veuillez installer SQL Server 2019 Express (https://www.microsoft.com/fr-fr/sql-server/sql-server-editions-express) avec les paramètres par défaut.

Microsoft propose une solution de mappage d’objets relationnels nommée Entity Framework. Il s’agit d’une librairie permettant de créer la couche d’accès aux données (une couche d’abstraction n’obligeant plus les développeurs à accéder directement à la base de données). La communication se fait au travers d’entités définies dans un modèle EDM (Entity Data Model). Ce modèle est utilisé pour les opérations sur la base de données et la génération des requêtes SQL.

Commencez par ajouter un nouveau projet de type Bibliothèque de classes (.NET Framework) nommé Database :

Nouveau projet de type Bibliothèque de classes

La création d’un modèle

Pour illustrer l’utilisation de l’Entity Framework dans le projet SelfMailer, nous allons créer un modèle de données permettant de stocker dans une base de données plusieurs configurations de serveurs mails et pour chacune d’elles, un ou plusieurs expéditeurs.

Ajoutez un nouveau dossier Entities dans le projet Database puis ajoutez un élément ADO.NET Entity Data Model nommé SelfMailer.edmx.

Ajouter un nouvel élement dans SelfMailer

La fenêtre Assistant EDM s’affiche et vous propose quatre choix :

La fenêtre Assistant EDM
  • EF Designer à partir de la base de données : cette option vous permet de choisir une base de données et les objets de celle-ci qui devront être modélisés.

  • Modèle vide EF Designer : cette option crée un modèle sans entités. Elles devront être créées manuellement dans le modèle.

  • Modèle vide Code First : cette option crée un modèle Code First vide. Les entités devront être créées manuellement dans le modèle à l’aide de code.

  • Code First à partir de la base de données : cette option vous permet de choisir une base de données et les objets de celle-ci qui serviront de base à un modèle Code First.

Étant donné que le projet ne contient aucune base de données, choisissez Modèle vide...

La création d’entités

Après sa création, Visual Studio a ouvert le fichier SelfMailer.edmx dans l’éditeur.

Ouvrez le menu contextuel de l’éditeur et choisissez le menu Ajouter nouveau - Entité :

La création d’entités

La fenêtre Ajouter une entité s’ouvre. Donnez le nom MailServer à l’entité et MailServers au jeu d’entités. La propriété de clé correspond à la clé primaire d’une table SQL et permet d’identifier de manière unique un enregistrement. Laissez ID comme nom de la propriété de clé et le type Int32 puis cliquez sur le bouton OK :

La fenêtre Ajouter une entité

Le champ Type de base permet de spécifier l’héritage de la nouvelle entité.

L’éditeur affiche le schéma de l’entité MailServer :

L’éditeur de l’entité MailServer

Pour ajouter des propriétés à une entité, ouvrez le menu contextuel de l’entité et sélectionnez le menu Ajouter nouveau - Propriété scalaire. Un nouveau champ apparaît sur le schéma. Saisissez le nom Host. Faites de même pour une propriété scalaire nommée Username. Aucune autre information n’est demandée pour la création. Les propriétés sont néanmoins modifiables à partir de la fenêtre Propriétés. Vous pouvez notamment...

La génération de la base de données

Une fois le modèle complet, il faut créer la base de données. Là encore, Visual Studio met à notre disposition un outil pour la générer.

Ouvrez le menu contextuel de l’éditeur de modèles et sélectionnez Générer la base de données à partir du modèle. L’assistant de génération de la base de données s’ouvre. Cliquez sur le bouton Nouvelle connexion, choisissez Microsoft SQL Server comme source de données et cliquez sur le bouton Continuer.

La fenêtre Propriétés de connexion s’ouvre :

La génération de la base de données

Vous pouvez vous connecter à tout serveur de base de données, que ce soit localement, sur un serveur distant ou sur le cloud. Saisissez donc dans le champ Nom du serveur le nom du serveur sur lequel vous souhaitez créer la base de données (ici le caractère . représente le serveur local). Si vous avez effectué l’installation de SQL Server 2019 Express par défaut, le nom du serveur est .\SQLEXPRESS. Puis renseignez le nom SelfMailer pour le nom de la base de données et cliquez sur le bouton OK. La base de données n’existant pas, une boîte de dialogue vous demande la confirmation de sa création.

De retour sur l’assistant de génération de la base de données, le champ de choix de la connexion est renseigné et la chaîne de connexion est affichée. Cliquez sur le bouton Suivant. La fenêtre affiche alors un aperçu du script SQL généré....

La création d’entités à partir du code (Code First)

L’approche de conception de la base de données telle que nous venons de la voir reste très graphique. Ce modèle est ensuite utilisé par Visual Studio pour générer les classes .NET du modèle de données et également pour générer la base de données. Entity Framework, en plus de cette conception par modèles de la base de données, offre la possibilité de définir et de concevoir une base de données à partir du code. Cette méthode est appelée Code First. La conception à partir du code vous permet de définir vos classes métier et les attributs qui seront associés aux classes et aux membres permettront de définir le schéma de la base de données.

Pour utiliser l’approche de création du modèle à partir du code, la première chose est d’ajouter le package NuGet EntityFramework. Ouvrez le menu contextuel du projet Database puis cliquez sur l’élément Gérer les packages NuGet....

Dans la fenêtre, sélectionnez le package EntityFramework et cliquez sur le bouton Installer si ce n’est pas déjà le cas :

La génération de la base de données

Après l’installation de Entity Framework, NuGet aura créé un dossier nommé packages au même niveau que votre solution. Ce dossier contient toutes les données du package EntityFramework et en particulier la librairie EntityFramework.dll. Un fichier packages.config a également été ajouté à la racine du projet SelfMailer :

<?xml version="1.0" encoding="utf-8"?>   
<packages>   
  <package id="EntityFramework" version="6.2.0"  
targetFramework="net48" />   
  <package id="EntityFramework.fr"...