Exercise - Utilizarea furnizorului de baze de date SQLite cu EF Core
Până în acest moment, salvați datele într-o bază de date în memorie. Această bază de date este ușor de configurat și de utilizat în timp ce dezvoltați aplicația, dar datele nu sunt persistente. Prin urmare, datele se vor pierde atunci când aplicația este repornită. Înainte de a implementa aplicația, trebuie să persistați datele într-o bază de date.
În acest exercițiu, veți face upgrade aplicației pentru a utiliza o bază de date relațională pentru a vă stoca datele. Veți utiliza SQLite pentru a vă stoca datele.
Configurarea bazei de date SQLite
Finalizați secțiunile următoare pentru a configura baza de date SQLite.
Instalați următoarele instrumente și pachete
În terminal, instalați următoarele pachete:
SQLite EF Core Database Provider : poate accesa multe baze de date diferite prin intermediul bibliotecilor de pluginuri denumite furnizori de baze de date. Următorul pachet este furnizorul de baze de date SQLite pentru Entity Framework (EF) Core.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0instrumentelor EF Core: Instrumente pentru EF Core efectuează activități de dezvoltare în timp de proiectare. De exemplu, acestea creează migrări, aplică migrări și generează cod pentru un model bazat pe o bază de date existentă.
dotnet tool install --global dotnet-efMicrosoft.EntityFrameworkCore.Design: conține întreaga logică de timp de proiectare pentru ca EF Core să creeze baza de date.
dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
Activare creare bază de date
Pentru a activa crearea bazei de date, trebuie să setați șirul de conexiune al bazei de date. Apoi veți migra modelul de date la o bază de date SQLite.
În Program.cs, sub
var builder = WebApplication.CreateBuilder(args);, adăugați un șir de conexiune.var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";Acest cod verifică furnizorul de configurare pentru un șir de conexiune denumit Pizzas. Dacă nu găsește unul, va utiliza
Data Source=Pizzas.dbca șir de conexiune. SQLite va mapa acest șir la un fișier.În porțiunea CRUD a acestui tutorial, ați utilizat o bază de date în memorie. Acum veți înlocui baza de date în memorie cu o bază de date persistentă.
Înlocuiți implementarea curentă a bazei de date în memorie
builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items"));în serviciile de compilare cu SQLite aici:builder.Services.AddSqlite<PizzaDb>(connectionString);Cu instrumentul de migrare EF Core, acum puteți genera prima migrare,
InitialCreate. Salvați toate modificările, apoi rulați următoarea comandă:dotnet ef migrations add InitialCreateEF Core creează un Migrări în directorul de proiect, care conține două fișiere cu codul care reprezintă migrările bazelor de date.
Acum că ați terminat migrarea, o puteți utiliza pentru a crea baza de date și schema.
Într-o fereastră terminal, rulați următoarea comandă
database updatepentru a aplica migrările la o bază de date:dotnet ef database updateAr trebui să vedeți un fișier Pizzas.db nou creat în directorul de proiect.
Rulați și testați aplicația
Acum, că aveți o bază de date de backup, modificările vor fi persistente.
Testați-vă aplicația ca înainte de a utiliza dotnet run și interfața de utilizator Swagger. Opriți aplicația utilizând comanda Ctrl+C. Apoi rulați-l din nou și verificați dacă modificările sunt menținute încă în Pizzas.db.
Felicitări! Ați conectat o bază de date la API-ul minim!