Le 10 octobre 2019 ASP.NET ENSAT 2019-2020 Génie Informatique 3ème année cycle ingénieur
Travailler avec des données à l’aide d’Entity Framework
Département Mathématiques & Informatique
Table des matières
Ouvrir le projet ... 2
Ajouter un modèle ... 2
Créer les pages pour gérer la bibliothèque de jeux ... 2
Tester ... 5
Référence ... 5
Ouvrir le projet
Si vous avez suivi ces vidéos, ouvrez le projet d’application web que vous avez créé dans la section précédente. Si vous commencez ici, créez un projet et choisissez Application web ASP.NET, puis Application web. Conservez les autres options par défaut.
Ajouter un modèle
La première chose à faire pour travailler avec des données dans une application ASP.NET Core est de décrire leur format. Nous appelons cela créer un modèle des différents aspects du problème à résoudre. Dans des applications réelles, il s’agirait d’ajouter une logique métier personnalisée à ces modèles pour leur imposer un certain comportement et automatiser les tâches. Dans cet exemple, nous allons créer un système simple de suivi de jeux de société. Il nous faut une classe qui représente un jeu et comprenne les propriétés à enregistrer sur ce jeu, comme le nombre de joueurs possibles. Cette classe se trouvera dans un nouveau dossier, nommé Models, créé à la racine du projet web.
C#Copier
public class Game {
public int Id { get; set; } public string Title { get; set; }
public int PublicationYear { get; set; } public int MinimumPlayers { get; set; } public int MaximumPlayers { get; set; } }
Créer les pages pour gérer la bibliothèque de jeux
Nous sommes maintenant prêts à créer les pages qui serviront à gérer notre bibliothèque de jeux. Si l’entreprise peut sembler colossale, elle est en fait extrêmement simple. Nous devons d’abord décider où devra se trouver cette fonctionnalité dans notre application. Ouvrez le dossier Pages dans le projet web et ajoutez-y un nouveau dossier. Appelez-le Games.
Maintenant, cliquez avec le bouton droit sur Games et choisissez Ajouter > Nouvel élément généré automatiquement. Choisissez Razor Pages avec l’option Entity Framework
(CRUD) . CRUD signifie « create, read, update, delete » pour « créer, lire, mettre à jour,
supprimer » ; ce modèle créera des pages pour chacune de ces opérations (y compris une page
« Tout lister » et une page « Afficher les détails d’un élément »).
Sélectionnez votre classe de modèle Game et utilisez l’icône « + » pour ajouter une nouvelle classe de contexte de données. Nommez-le AppDbContext. Laissez les autres options par défaut et cliquez sur Ajouter.
Les pages Razor Pages suivantes sont ajoutées à votre dossier Games :
Create.cshtml
Delete.cshtml
Details.cshtml
Edit.cshtml
Index.cshtml
L’opération de génération automatique a ajouté non seulement des pages au dossier Games, mais aussi du code à la classe Startup.cs. Dans la méthode ConfigureServices de cette classe, on constate ce code a été ajouté :
C#Copier
services.AddDbContext<AppDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("AppDbContext")));
La chaîne de connexion AppDbContext a également été ajoutée au fichier appsettings.json du projet.
Si vous exécutez l’application maintenant, il y a un risque d’échec, car aucune base de données n’a encore été créée. Vous pouvez configurer l’application de sorte qu’elle crée
automatiquement la base de données si nécessaire par ajout de code à Program.cs : C#Copier
public static void Main(string[] args) {
var host = CreateWebHostBuilder(args).Build();
using (var scope = host.Services.CreateScope()) {
var services = scope.ServiceProvider;
try {
var context = services.GetRequiredService<AppDbContext>();
context.Database.EnsureCreated();
}
catch (Exception ex) {
var logger = services.GetRequiredService<ILogger<Program>>();
logger.LogError(ex, "An error occurred creating the DB.");
host.Run();
}
Pour résoudre les noms de types dans le code précédent, ajoutez les instructions using suivantes à Program.cs à la fin du bloc existant d’instructions using :
C#Copier
using Microsoft.Extensions.DependencyInjection;
using WebApplication1.Models;
Veillez à utiliser votre nom de projet à la place de WebApplication1 dans votre code.
La majeure partie du code concerne simplement la gestion des erreurs et l’accès à EF Core AppDbContext avant l’exécution de l’application. La ligne importante
est context.Database.EnsureCreated(), qui crée la base de données si elle n’existe pas déjà. L’application est maintenant prête à s’exécuter.
Tester
Exécutez l’application et accédez à /Games dans la barre d’adresse. Une page comportant une liste vide apparaît. Cliquez sur Créer pour ajouter un nouveau Game à la collection. Remplissez le formulaire et cliquez sur Créer. Il devrait apparaître dans le mode Liste. Cliquez sur Détails pour voir les détails d’un enregistrement.
Ajoutez un autre enregistrement. Vous pouvez cliquer sur Modifier pour modifier les détails d’un enregistrement, ou sur Supprimer pour le supprimer (après confirmation dans une invite).
Référence
https://docs.microsoft.com/fr-fr/visualstudio/get-started/csharp/tutorial-aspnet-core-ef-step-03?view=vs-2019