Упражнение. Использование поставщика базы данных SQLite с EF Core
До этого момента вы сохраняете данные в базе данных в памяти. Эта база данных легко настроить и использовать при разработке приложения, но данные не являются постоянными. В результате данные будут потеряны при перезапуске приложения. Перед развертыванием приложения необходимо сохранить данные в базе данных.
В этом упражнении вы обновите приложение, чтобы использовать реляционную базу данных для хранения данных. Вы будете использовать SQLite для хранения данных.
Настройка базы данных SQLite
Выполните следующие разделы, чтобы настроить базу данных SQLite.
Установите следующие средства и пакеты
В терминале установите следующие пакеты:
поставщик базы данных SQLite EF Core: может получить доступ к различным базам данных через библиотеки подключаемых модулей, называемые поставщики баз данных. Следующий пакет — поставщик базы данных SQLite для Entity Framework (EF) Core.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0
инструменты EF Core: инструменты для EF Core выполняют задачи разработки на стадии проектирования. Например, они создают миграции, применяют миграции и создают код для модели на основе существующей базы данных.
dotnet tool install --global dotnet-ef
Microsoft.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 InitialCreate
EF Core создает папку Migrations в каталоге проекта, содержащую два файла с кодом, который представляет миграцию базы данных.
Теперь, когда вы завершили миграцию, ее можно использовать для создания базы данных и схемы.
В окне терминала выполните следующую команду
database update
, чтобы применить миграцию к базе данных:dotnet ef database update
В каталоге проекта должен появиться только что созданный файл Pizzas.db .
Запуск и тестирование приложения
Теперь, когда у вас есть резервная база данных, изменения будут сохранены.
Протестируйте приложение, как и прежде, используя dotnet run
и пользовательский интерфейс Swagger. Остановите приложение с помощью команды ctrl+C . Затем снова запустите его и убедитесь, что изменения по-прежнему сохраняются в Pizzas.db.
Поздравляю! Вы подключили базу данных к минимальному API!