Я новичок в EF Core, поэтому, пожалуйста, простите меня, если есть банальный ответ.
Возьмите этот сценарий ....
Новое веб-приложение разрабатывается с использованием последней версии ASP.NET Core с использованием подхода «сначала код». В какой-то момент ContextModelSnapshot рассинхронизировался с базой данных из-за удалений или контроля версий. Мы не можем удалить базу данных и создать ее заново.
Вопрос: Как можно «повторно синхронизировать» моментальный снимок с базой данных?
Вы можете выполнить команду
Add-migration temporary
чтобы создать новую пустую миграцию. Затем запустите
Remove-Migration temporary
(или их аналоги в dotnet-cli)
Он вернет снимок модели, даже если миграция уже была удалена. Этот подход отлично работает для Ef core 2.2.0-rtm-35687
Это не работает, потому что Add-Migration
нельзя запустить без имени миграции.
Дайте ему имя с помощью Add-Migration MyName
. Имя не имеет значения, потому что Remove-Migration удалит файл.
Remove-Migration не принимает аргументов, по крайней мере, в последних выпусках EF Core.
это так просто, просто удалите ContextModelSnapshot, затем добавьте новую миграцию
довольно неожиданный способ воссоздать снимок из базы данных, но работает