EF Core при использовании миграций генерирует несколько разных файлов, в которых легко запутаться. Особенно много вопросов возникает при совместной разработке, когда в разных ветках кода создаются разные миграции. Например:
Чтобы ответить на эти вопросы, достаточно разобраться, как именно работает механизм миграций. Добавление очередной миграции приводит к следующим изменениям в проекте: На самом деле с точки зрения классов, для каждой миграции создаётся только один новый класс, и он наследуется от базового класса Migration. Просто этот файл с помощью ключевого слова partial разбит на два файла. Меньше всего вопросов вызывает файл Migration.cs, т.к. в нём описаны методы Up() и Down(), и именно с ними сталкивается разработчик чаще всего. Файл Migration.designer.cs содержит вторую часть того же класса-наследника Migration, и в него выносится переопределение метода BuildTargetModel и атрибут [Migration]. Метод BuildTargetModel содержит описание полной модели данных, учитывающее изменения