Вправа – використання постачальника бази даних SQLite із EF Core
До цього моменту дані зберігаються в базі даних у пам'яті. Цю базу даних легко настроїти та використовувати під час розробки програми, але дані не є постійними. У результаті дані буде втрачено після перезапуску програми. Перш ніж розгортати програму, потрібно зберегти дані в базі даних.
У цій вправі ви оновите програму, щоб використовувати реляційну базу даних для зберігання даних. Щоб зберігати дані, скористайтеся функцією SQLite.
Настроювання бази даних SQLite
Виконайте наведені нижче розділи, щоб настроїти базу даних SQLite.
Інсталяція наведених нижче засобів і пакетів
У терміналі інсталюйте такі пакети:
постачальника баз даних SQLite EF Core: доступ до багатьох різних баз даних можна отримати за допомогою бібліотек компонентів plug-in, які називаються постачальниками баз даних . Наведений нижче пакет – постачальник баз даних SQLite для entity Framework (EF) Core.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0Інструменти EF Core: інструменти для EF Core виконують завдання розробки під час дизайну. Наприклад, вони створюють перенесення, застосовують перенесення та створюють код моделі на основі наявної бази даних.
dotnet tool install --global dotnet-efMicrosoft.EntityFrameworkCore.Design: містить усю логіку часу розробки для EF Core для створення бази даних.
dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
Увімкнути створення бази даних
Щоб увімкнути створення бази даних, потрібно встановити рядок підключення до бази даних. Потім ви перенесете модель даних до бази даних SQLite.
У Program.csв розділі
var builder = WebApplication.CreateBuilder(args);додайте рядок підключення.var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";Цей код перевіряє постачальника конфігурації на наявність рядка підключення з іменем Pizzas. Якщо його не вдається знайти, він використовуватиме
Data Source=Pizzas.dbяк рядок підключення. SqLite зіставить цей рядок із файлом.У частині CRUD цього посібника ви використовували базу даних в пам'яті. Тепер ви збираєтеся замінити базу даних у пам'яті постійною базою даних.
Замініть поточну реалізацію бази даних у пам'яті
builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items"));у своїх службах збірки на SQLite.builder.Services.AddSqlite<PizzaDb>(connectionString);За допомогою засобу перенесення EF Core тепер можна створити перше перенесення
InitialCreate. Збережіть усі зміни, а потім виконайте таку команду:dotnet ef migrations add InitialCreateEF Core створює папку Перенесення в каталозі проектів, яка містить два файли з кодом, який представляє перенесення бази даних.
Тепер, коли перенесення завершено, його можна використовувати для створення бази даних і схеми.
У вікні термінала виконайте таку команду
database update, щоб застосувати перенесення до бази даних:dotnet ef database updateЩойно створений файл Pizzas.db має відображатися в каталозі проектів.
Запуск і перевірка програми
Тепер, коли у вас є резервна база даних, зміни буде збережено.
Перевірте програму, як і перед використанням dotnet run та інтерфейсу користувача Swagger. Зупиніть програму за допомогою команди Ctrl+C. Потім запустіть його ще раз і переконайтеся, що зміни все ще зберігаються в Pizzas.db.
Вітаємо! Ви проводите підключення бази даних до мінімального API!