Dans cet exercice, vous allez apprendre à implémenter Entity Framework dans un projet ASP.NET Core 6. Vous allez réutiliser les classes d'entités, les services et les repositories définis précédemment dans le programme console pour les partager à travers un projet ASP.NET Core 6. Vous allez configurer le contexte de la base de données, ajouter des services au conteneur d'injection de dépendances, et interagir avec la base de données via des contrôleurs.
Récupérez votre projet Ex05_MVC_Attribut
ou créez un nouveau projet ASP.NET Core 6 avec l'option API
en utilisant Visual Studio ou la CLI .NET :
dotnet new webapi -n WarehouseAPI
cd WarehouseAPI
Microsoft.EntityFrameworkCore
v6.X.XMicrosoft.EntityFrameworkCore.SqlServer
v6.X.XMicrosoft.EntityFrameworkCore.Tools
v6.X.XCopiez les classes d'entités suivantes de votre programme console
vers le dossier
Models
de votre projet ASP.NET Core :
Copiez les services suivants de votre programme console
vers le dossier Service
de
votre projet ASP.NET Core :
Dans le dossier Data
, créez la classe ApplicationDbContext
et configurez les relations
et les données initiales.
Program.cs
Ouvrez le fichier Program.cs
et ajoutez le contexte de la base de données au conteneur de services :
// Configure the DbContext
builder.Services.AddDbContext(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
app.Run();
Ajoutez la chaîne de connexion à votre fichier appsettings.json
:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=WarehouseDb;Trusted_Connection=True;MultipleActiveResultSets=true"
},
...
}
Exemple:
// Services/IRepository.cs
public interface IRepository where T : class
{
Task> GetAll();
Task GetById(int id);
Task Add(T entity);
Task Update(T entity);
Task Delete(int id);
}
// Services/Repository.cs
using Microsoft.EntityFrameworkCore;
using WarehouseAPI.Data;
public class Repository : IRepository where T : class
{
private readonly ApplicationDbContext _context;
private readonly DbSet _entities;
public Repository(ApplicationDbContext context)
{
_context = context;
_entities = _context.Set();
}
public async Task> GetAll()
{
return await _entities.ToListAsync();
}
public async Task GetById(int id)
{
return await _entities.FindAsync(id);
}
public async Task Add(T entity)
{
await _entities.AddAsync(entity);
await _context.SaveChangesAsync();
}
public async Task Update(T entity)
{
_entities.Update(entity);
await _context.SaveChangesAsync();
}
public async Task Delete(int id)
{
var entity = await _entities.FindAsync(id);
_entities.Remove(entity);
await _context.SaveChangesAsync();
}
}
A l'aide de ce que vous avez appris précédemment faites en sorte que nous puissons à travers l'application ASP.NET effectuer les opérations suivantes :
montantTotalCommandé
décroissant au format suivant:
nomCLient; Adresse; nbCommande; montantTotalCommandé; montantMoyenParCommande;
Quentin; 2 rue de Rennes; 10; 1 500€ 150€
Paul; 10 rue de Paris; 2; 500€ 250€
Ex05_MVC_Attribut
localhost:5051/api/articles