Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
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# 12
  3. LINQ to Entities
Extrait - C# 12 Développez des applications Windows avec Visual Studio 2022
Extraits du livre
C# 12 Développez des applications Windows avec Visual Studio 2022
1 avis
Revenir à la page d'achat du livre

LINQ to Entities

Introduction

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.

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/C12-20-001.png

Extraire les données

Les requêtes sont définies avec des objets de type DbSet<T> et doivent être exécutées au sein du contexte des entités initialisé dans la classe Program.cs :

var builder = new HostBuilder() 
   .ConfigureServices((hostContext, services) => 
   { 
       services.AddDbContext<SelfMailerContext>(options => 
       { 
           options.UseSqlServer("Server=localhost\\SQLEXPRESS;
Database=SelfMailer;Trusted_Connection=True;"); 
       }); 
   }); 
var host = builder.Build(); 

Le contexte peut ainsi être récupéré et injecté dans l’application :

using (var serviceScope = host.Services.CreateScope()) 
{ 
   var services = serviceScope.ServiceProvider; 
   Context = services.GetRequiredService<SelfMailerContext>(); 
} 

Pour des raisons de simplicité, la variable Context statique a été ajoutée à la classe Program pour être disponible globalement.

public static SelfMailerContext Context { get; set; } 

1. L’extraction simple

Pour remplir le contrôle ComboBox...

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;  
Program.Context.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...