Ćwiczenie — używanie dostawcy bazy danych SQLite z programem EF Core
Do tego momentu zapisywałeś swoje dane w bazie danych w pamięci. Ta baza danych jest łatwa do skonfigurowania i użycia podczas tworzenia aplikacji, ale dane nie są trwałe. W związku z tym dane zostaną utracone po ponownym uruchomieniu aplikacji. Przed wdrożeniem aplikacji należy utrwałyć dane w bazie danych.
W tym ćwiczeniu uaktualnisz aplikację, aby używać relacyjnej bazy danych do przechowywania danych. Użyjesz sqlite do przechowywania danych.
Konfigurowanie bazy danych SQLite
Wykonaj poniższe sekcje, aby skonfigurować bazę danych SQLite.
Zainstaluj następujące narzędzia i pakiety
W terminalu zainstaluj następujące pakiety:
SqLite EF Core Database Provider: może uzyskiwać dostęp do wielu różnych baz danych za pośrednictwem bibliotek wtyczek nazywanych dostawcami baz danych. Poniższy pakiet to dostawca bazy danych SQLite dla platformy Entity Framework (EF) Core.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0Narzędzia EF Core: Narzędzia do EF Core wykonują zadania związane z projektowaniem. Na przykład tworzą migracje, stosują migracje i generują kod dla modelu na podstawie istniejącej bazy danych.
dotnet tool install --global dotnet-efMicrosoft.EntityFrameworkCore.Design: zawiera całą logikę czasu projektowania dla platformy EF Core w celu utworzenia bazy danych.
dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
Włączanie tworzenia bazy danych
Aby włączyć tworzenie bazy danych, należy ustawić parametry połączenia bazy danych. Następnie zmigrujesz model danych do bazy danych SQLite.
W Program.cs, w obszarze
var builder = WebApplication.CreateBuilder(args);, dodaj łańcuch połączenia.var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";Ten kod weryfikuje dostawcę konfiguracji pod kątem ciągu połączenia o nazwie Pizzas. Jeśli go nie znajdzie, użyje
Data Source=Pizzas.dbjako parametrów połączenia. SqLite zamapuje ten ciąg na plik.W części CRUD tego samouczka użyto bazy danych w pamięci. Teraz zastąpisz tymczasową bazę danych trwałą bazą danych.
Zastąp bieżącą implementację bazy danych w pamięci
builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items"));w usługach budowania na SQLite dostępne tutaj:builder.Services.AddSqlite<PizzaDb>(connectionString);Za pomocą narzędzia migracji platformy EF Core możesz teraz wygenerować pierwszą migrację,
InitialCreate. Zapisz wszystkie zmiany, a następnie uruchom następujące polecenie:dotnet ef migrations add InitialCreateProgram EF Core tworzy folder Migrations w katalogu projektu zawierający dwa pliki z kodem reprezentującym migracje bazy danych.
Po zakończeniu migracji możesz użyć jej do utworzenia bazy danych i schematu.
W oknie terminalu uruchom następujące polecenie
database update, aby zastosować migracje do bazy danych:dotnet ef database updateW katalogu projektu powinien zostać wyświetlony nowo utworzony plik Pizzas.db .
Uruchamianie i testowanie aplikacji
Teraz, gdy masz bazę danych kopii zapasowej, zmiany zostaną utrwalone.
Przetestuj aplikację jak wcześniej, używając dotnet run oraz interfejsu Swagger UI. Zatrzymaj aplikację za pomocą polecenia Ctrl+C . Następnie uruchom ponownie i sprawdź, czy zmiany są nadal zapisane w Pizzas.db.
Gratulacje! Podłączyłeś bazę danych do swojego minimalnego interfejsu API!