Ответ
Миграция в Entity Framework Core — это механизм для управления изменениями схемы базы данных с помощью кода C#. Вместо ручного написания SQL-скриптов для создания или изменения таблиц, вы описываете изменения в модели данных, а EF Core генерирует и применяет соответствующие команды к БД.
Ключевые моменты:
- Файлы миграций хранятся в проекте и содержат два основных метода:
Up()— применяет изменения к БД.Down()— откатывает эти изменения.
- Версионирование: Каждая миграция представляет собой отдельный шаг, что позволяет отслеживать историю изменений схемы и согласовывать её между средами разработки, тестирования и продакшена.
-
Инструменты CLI: Основные команды для работы:
# Создать новую миграцию на основе изменений в моделях dotnet ef migrations add <MigrationName> # Применить все ожидающие миграции к базе данных dotnet ef database update # Откатить последнюю применённую миграцию dotnet ef database update <PreviousMigrationName>
Практический пример:
- Вы добавляете новое свойство
Emailв класс сущностиUser. - Выполняете
dotnet ef migrations add AddEmailToUser. EF Core сравнивает текущую модель с состоянием БД и создаёт файл миграции с кодом для добавления столбцаEmail. - Выполняете
dotnet ef database update, чтобы применить этот SQL-скрипт к вашей базе данных.
Best Practice: Миграции следует создавать для каждого значимого изменения модели и включать в систему контроля версий (например, Git).