Ответ 1
У EF Core больше нет команды Enable-Migrations
. Миграция включена "по умолчанию". Добавьте новую миграцию с помощью Add-Migration
.
Документация о командах диспетчера пакетов здесь
Я только что установил VS 2017 и создал новый проект Core. Внутри я добавил:
Я также создал папку под названием Models с классом в ней. Затем я пошел в консоль диспетчера пакетов и выполнил разрешения-миграции, чтобы VS создал файлы, необходимые для меня. Однако вместо необходимых файлов я получил следующую ошибку.
Термин "enable-migration" не распознается как имя командлета, функции, файла сценария или операционной программы. Проверьте правильность написания имени или, если включен путь, проверьте правильность пути и повторите попытку.
Что я должен здесь делать?
Кажется, мне не повезло. Это очень необычная комбинация (Core VS17 и EF), поэтому практически нет информации по этому вопросу. В некоторых руководствах говорится об изменении пакета package.json вручную, что довольно сложно, потому что VS 2017, похоже, обновляет Core, так что восстановление в dotnet не ищет его, а скорее для xxx.csproj.
В целом, я смущен и довольно неопределен, как укусить проблему.
У EF Core больше нет команды Enable-Migrations
. Миграция включена "по умолчанию". Добавьте новую миграцию с помощью Add-Migration
.
Документация о командах диспетчера пакетов здесь
У меня была аналогичная проблема с Visual Studio 2017 и импортированным проектом из VS 2015, EF Migrations больше не работала.
После прочтения документации по GitHub: https://github.com/aspnet/EntityFramework/issues/7031
Я установил через Nuget этот пакет:
"Microsoft.EntityFrameworkCore"
Это вызвало каскадный эффект нескольких загрузок/установок. После установки и перезапуска VS 2017, теперь все возвращается к норме.
Через два дня, с другим проектом Visual Studio 2015, у меня была такая же проблема, и я решил его выполнить в соответствии с описанной выше процедурой, но затем я получил эту новую ошибку:
"Правила безопасности наследования, нарушенные по типу:" System.Net.Http.WebRequestHandler ". Производные типы должны либо соответствовать доступности безопасности базового типа, либо быть менее доступными".
Я решил эту ошибку, обновив проект Framework до последней ".NET Framework 4.6.2" (Scary.... но он работал без каких-либо дополнительных проблем)
Я ссылался на эту документацию на GitHub: https://github.com/dotnet/corefx/issues/11100
Как упоминалось ранее, включение миграции является устаревшим и все равно включено, и вы можете использовать Add-Migration InitialCreate.
Я добавлю, что вам не нужно добавлять дополнительные пакеты в проект, поскольку он уже будет ссылаться на необходимые сборки в метапаке Microsoft.AspNetCore.All.
Вы также можете использовать консоль (cmd/shell в зависимости от вашей ОС) вместо консоли питания Power Power. Для этого вам нужно добавить ссылку на инструмент dotnet: отредактируйте файл проекта (щелкните его правой кнопкой мыши и выберите "edit.csproj") и добавьте следующую ссылку в ItemGroup:
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0"></DotNetCliToolReference>
а затем в консоли типа dotnet ef migrations add InitialCreate
Я только что установил Microsoft.EntityFrameworkCore.Tools
, затем я попытался выполнить enable-migrations
после чего получил следующее сообщение в VS2017:
Enable-Migrations is obsolete. Use Add-Migration to start using Migrations.
Надеюсь, поможет.
Постановили
перейдите на Tools-> Пакет NuGet Manager-> Консоль диспетчера пакетов
записывать
install-package EntityFramework
затем
enable-migrations
эта команда выполняется в течение всего времени жизни проекта, что означает, что вы должны написать ее только один раз в проекте, однако, если мы изменим модель или добавим другой класс, или любое другое изменение, мы можем использовать эту команду
add-migration migrationNameTest
'igrationNameTest '- это имя миграции, которое вы хотите назначить ему, однако для запуска миграции перейдите в диспетчер пакетов и запустите
update-database