Entity Framework dbfirst создание таблицы

В проекте используется Entity Framework dbfirst, возникла ситуация когда необходимо ставить приложение множеству заказчиков, и соответственно будет множество БД. Если в БД у разработчиков была добавлена новая таблица и соответственно по ней была получена новая модель в коде (edmx), то есть ли способ средствами EF автоматически создать эту недостающую таблицу уже в базах заказчиков ? То есть суть вопроса в том, что при подходе dbfirst можно ли как-то создавать отсутствующие таблицы / поля на основании модели ?


Ответы (1 шт):

Автор решения: xxramm

Воспользуйтесь миграциями https://docs.microsoft.com/ru-ru/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli. Сама база данных содержит информацию о миграциях, которые были применены, если вы будете поддерживать версионность миграций, то проблем не будет.

На практике: была миграция InitDB, которая была накачена на базу заказчика. Если появится у разработчиков новая миграция NewMigration1 и не была испорчена(переопределена) миграция InitDB, то все, что нужно сделать на базе заказчика - это выполнить команду update-database.

→ Ссылка