Blog ENI : Toute la veille numérique !
-25€ dès 75€ sur les livres en ligne, vidéos... avec le 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# 9
  3. LINQ to Entities
Extrait - C# 9 Développez des applications Windows avec Visual Studio 2019
Extraits du livre
C# 9 Développez des applications Windows avec Visual Studio 2019 Revenir à la page d'achat du livre

LINQ to Entities

Introduction

ADO.NET Entity Framework fournit les classes pour exécuter des requêtes et extraire les enregistrements stockés dans la base de données. Les requêtes peuvent être faites en utilisant LINQ to Entities ou Entity SQL. Le concept de LINQ sera détaillé plus loin dans l’ouvrage.

Pour illustrer ce chapitre, le formulaire MailServerSettings a été modifié pour afficher un contrôle ComboBox contenant les configurations stockées dans la base de données et un bouton pour sauvegarder les modifications :

images/20EI001N.PNG

Extraire les données

Les requêtes sont définies avec des objets de type ObjectQuery ou ObjectQuery<T> et doivent être exécutées au sein du contexte des entités :

using (SelfMailerContainer entities = new SelfMailerContainer()) 
{ 
    ... 
} 

La clause using est utilisée de manière à ne pas avoir à appeler la méthode Dispose de l’objet SelfMailerContainer pour libérer les ressources. Le contexte sera ainsi accessible dans la clause using.

1. L’extraction simple

Pour remplir le contrôle ComboBox du formulaire avec les configurations stockées dans la base de données, les entités peuvent être récupérées directement depuis le contexte :

var query = entities.MailServers; 

En faisant une boucle foreach sur l’objet ObjectQuery, les entités sont disponibles :

foreach (MailServer mailServer in query) 
{ 
    foreach (Sender sender in mailServer.Sender) 
    { 
        this.ConfigList.Items.Add( 
          new ComboBoxItem(mailServer.ID, 
                        sender.ID, 
                        mailServer.Host...

Ajouter, modifier et supprimer des données

Lire, chercher, filtrer et ordonner les enregistrements de la base de données représente seulement une partie du besoin dans une application. Ajouter, modifier et supprimer des données sont des actions habituelles effectuées sur un jeu de données.

1. Ajouter des données

L’ajout de nouveaux enregistrements se fait en créant une nouvelle entité du type souhaité. Il suffit ensuite de renseigner ses propriétés et de l’ajouter à la collection d’entités du contexte :

MailServer newMailServer = new MailServer();  
newMailServer.Host = this.Host.Text;  
newMailServer.Username = this.Username.Text;  
newMailServer.Password.Value = this.Password.Text;  
newMailServer.Password.AllowSave = true;  
entities.MailServers.Add(newMailServer); 

L’ajout de la nouvelle entité à la collection du contexte peut être effectué avant ou après l’assignation des propriétés.

La nouvelle entité créée peut être liée avec une entité existante suivant les relations. Pour lier l’entité newMailServer précédemment créée avec une entité Sender, il faut l’ajouter à la collection d’entités liées :

Sender newSender...