Создаем первую миграцию¶
Преже всего нам необходимо установить нужные инструменты. Существует два способа:
- консоль диспетчера пакетов — командлеты Powershell можно использовать в консоли диспетчера пакетов Visual Studio. Их можно установить из консоли или добавить в проект пакет Microsoft.EntityFrameworkCore.Tools;
- инструменты командной строки .NET — кросс-платформенный набор инструментов, которые можно запускать из командной строки, и который расширяет набор средств разработки .NET. Для этого нужно выполнить команду
dotnet tool install --global dotnet-ef.
Далее будем использовать кросс-платформенные инструменты, но для консоли диспетчера пакетов VS есть эквиваленты для всех шагов1. Здесь и далее команды dotnet ef нужно запускать, находясь в папке проекта, в котором зарегистрирован DbContext, а не на уровне папки решения.
Установив инструменты и сконфигурировав контекст БД, можно создать первую миграцию. Для этого выполним команду, указав имя миграции (InitialSchema):
Эта команда создаст три файла в папке Migrations:
- файл миграции — файл в формате Timestamp_MigrationName.cs. Здесь описаны действия, которые нужно предпринять в БД, такие как создание таблицы или добавление столбца. Сгенерированные команды зависят от провайдера БД, сконфигурированного в проекте;
- файл Migration designer.cs — здесь описана внутренняя модель модели данных данных EF Core на момент создания миграции;
- AppDbContextModelSnapshot.cs — описывает текущую внутреннюю модель EF Core. Будет обновлен, когда добавится следующая миграция, поэтому всегда должен соответствовать текущей миграции.
Эти три файла инкапсулируют процесс миграции, но при добавлении миграции в самой БД ничего не обновляется. Для обновления БД нужно выполнить другую команду.
Миграции можно применить одним из трёх способов:
- инструмент командной строки .NET;
- командлеты Powershell;
- в коде, получив экземпляр контекста из контейнера зависимостей и вызвав метод
context.Database.Migrate().
Используем инструмент командной строки; выполним команду:
При этом выполняются 4 шага:
- Выполняется сборку вашего приложения;
- Загружаются сервисы, настроенные в
Startup, включаяAppDbContext; - Проверяется, существует ли БД в строке подключения
AppDbContext, если нет, то БД создается; - Обновляется БД, применяя все непримененные миграции.
Дата создания : 2 октября 2022 г.