Как обновить модель при первом использовании базы данных

Я сначала использовал базу данных EntityFramework Core для создания модели как показано в документации EF Core

Но я не знаю, как обновить модель, когда была изменена база данных.

Ответ 1

Вы можете повторно закрасить модель, выполнив команду, которую вы первоначально запускали, с добавленной опцией -Force. Это приведет к перезаписи содержимого указанной папки. Используя консоль диспетчера пакетов пример из документов EF Core, пересмотренная команда будет выглядеть следующим образом:

Scaffold-DbContext "Server=(localdb)\v11.0;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force

В качестве альтернативы, если вы используете команды

Однако вам следует рассмотреть возможность использования Migrations для синхронизации вашей модели и схемы базы данных друг с другом. Таким образом вы вносите изменения в модель, а затем распространяете их в базу данных.

Ответ 2

Дополнительный совет

Если вы собираетесь обновлять модели время от времени, то здесь удобный способ упростить процесс.

Перейдите в меню " Инструменты" > " Внешние инструменты", затем добавьте новое меню и заполните следующие поля:


Название:

Update DbContext

Команда:

dotnet.exe

Аргументы:

ef dbcontext scaffold "your-connection-string" Microsoft.EntityFrameworkCore.SqlServer --output-dir=Models --force

Начальный каталог:

$(ProjectDir)

Затем при необходимости отметьте "Использовать окно вывода", нажмите " Применить" и OK.

Когда вы снова зайдете в Инструменты, это новое меню должно быть готово для повторного использования одним нажатием кнопки!

Ответ 3

Вам необходимо выполнить миграцию, НЕ перераспределяйте, иначе вы потеряете любую работу, выполненную на моделях, например проверку данных.

Ответ 4

Если мы настроили в классе dbcontext например, добавьте LoggerFactory а затем после того, как мы используем ('Scaffold-DbContext "Server=(localdb)\v11.0;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force'). эта команда затем все изменения настройки будут потеряны.

Ответ 5

Используйте команду Add -igration NameOfMigrationfile, которая создается в папке миграции на уровне приложения.

Если автоматическая миграция не включена, мы можем использовать некоторые из следующих команд в консоли диспетчера пакетов.

PM> Включить миграцию -force (если автоматическая миграция не включена) PM> Добавить-миграцию MigrationName PM> Update-database -force (если команда add -igration не работает, мы можем использовать команду udate)

Ответ 6

Откройте файл ContextModel.edmx, чтобы отобразить диаграмму модели. Щелкните правой кнопкой мыши в любом месте поверхности проекта и выберите Обновить модель из базы данных... В мастере обновлений выберите вкладку Обновить и выберите свою таблицу, затем нажмите кнопку Готово.

Для получения дополнительной информации при посещении фотографии: База данных EF Сначала с ASP.NET MVC: Изменение базы данных