Ответ 1
Я переустановил с помощью commmand: Install-Package EntityFramework -IncludePrerelease и проблема исчезла.
Я попытался запустить команду "Enable-Migrations" в новом проекте, и я получил сообщение:
PM> Enable-Migrations
The term 'Enable-Migrations' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verif
y that the path is correct and try again.
At line:1 char:18
+ Enable-Migrations <<<<
+ CategoryInfo : ObjectNotFound: (Enable-Migrations:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Но во всех других проектах команда выполняется нормально.
Почему это происходит?
Кстати, я использую VS2010 Professional SP1
РЕДАКТИРОВАТЬ: Я переустановил с помощью commmand: Install-Package EntityFramework -IncludePrerelease и проблема исчезла.
Я переустановил с помощью commmand: Install-Package EntityFramework -IncludePrerelease и проблема исчезла.
Просто для начала Visual Studio работал у меня. Нет необходимости устанавливать пакеты и т.д.
Эта проблема возникает, потому что у нас не установлен Entity Framework. Пожалуйста, установите Entity Framework, используя приведенную ниже команду.
Install-Package EntityFramework -IncludePrerelease
После установки выберите проект в раскрывающемся списке проектов по умолчанию консоли консоли менеджера пакетов.
Убедитесь, что хотя бы один класс в вашем проекте наследуется от контекста данных, в противном случае используйте следующий класс:
public class MyDbContext : DbContext
{
public MyDbContext()
{
}
}
Если мы этого не сделаем, мы получим еще одну ошибку:
No context type was found in the assembly
После завершения этих вещей вы можете запустить
enable-migrations
Перезапуск Visual Studio с привилегией администратора решила проблему для меня.
Запустите Visual Studio в качестве администратора.
Сначала "Install-Package EntityFramework -IncludePrerelease", а затем перезагрузка Visual Studio в качестве администратора работала для меня вместе.
У меня была такая же проблема с VS 2019 Preview,.Net Core и EntityFramework Core.
Оказывается, мне пришлось установить через NuGet Microsoft.EntityFrameworkCore.Tools
и Microsoft.EntityFrameworkCore.Design
. Как только это было сделано, это работало как очарование.
В Visual Studio 2012 у меня была такая же ошибка. Придется удалить NuGet (Tools > Extensions and Updates > Installed > All: NuGet Package Manager: кнопка удаления). Затем закрыта Visual Studio. Затем повторно открыли Visual Studio и переустановили NuGet (Инструменты > Расширения и Обновления > Онлайн > Галерея Visual Studio: Диспетчер пакетов NuGet: Кнопка загрузки). Затем в следующих окнах: нажмите кнопку "Установить", затем нажмите кнопку "Закрыть". Затем закройте и снова откройте Visual Studio.
Что фиксировал этот симптом для меня (VS2013), это удаление, а затем переустановка пакета EF с помощью Nuget. Разница в файле csproj изменила это...
<Reference Include="EntityFramework">
<HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>
... в это...
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>
Я пока не понимаю, почему, но это сработало как минимум.
В .NET Core я смог достичь того же разрешения, что и в принятом ответе, введя следующее в консоли диспетчера пакетов:
Install-Package EntityFramework.Core -Pre
У меня была та же проблема, и я попробовал большую часть решения, предоставленного другими людьми, но он работал для меня с шагами ниже. У меня есть VS 2017.
шаги:
Install-Package EntityFramework -IncludePrerelease
затем создайте класс как
public class MyDBContext : DbContext { public MyDBContext() { } }
и в последний раз выполнить
Enable-Migrations -EnableAutomaticMigrations
Что не сработало для меня:
: Перезапуск VS.
: только команда "Enable-Migrations", которая без -EnableAutomaticMigrations.
: восстановление или обновление диспетчера пакетов Nuget.
Моя первоначальная ошибка в начале была
/* Термин "разрешить миграцию" не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и попробуйте снова. В строке: 1 символ: 1 + enable -igration + ~~~~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (enable -igration: String) [], CommandNotFoundException */
У меня была та же проблема, и я обнаружил, что это связано с некоторыми символами в пути к проекту, например [или] Я исправляю путь проекта, и он отлично работает!
Enable-Migrations -EnableAutomaticMigrations
Поскольку у меня уже была папка с миграциями, я перезапустил Visual Studio и запустил Обновить-База данных -verbose в консоли диспетчера пакетов. Это сработало для меня
Я пробовал все вышеперечисленные предложения, но ничего не работал у меня, а затем обновил Nuget Package Manager
, и он сработал.
Установите платформу Entity в текущий проект с помощью следующей команды: PM> Install-Package EntityFramework -IncludePrerelease
Добавьте класс "MyDBContext" в папку "Модель", как показано ниже:
открытый класс MyDBContext: DbContext {открытый MyDBContext() {}}
Теперь включите миграции для текущего проекта с помощью следующей команды: PM> enable-migrations
В VS 2013 попытайтесь установить UPDATE 1 (RC1), и проблема будет решена.
У меня было несколько проектов в решении, но у меня был правильный набор по умолчанию, поэтому я подумал, что он должен работать.
В конце концов, мне пришлось добавить параметр -StartupProject MyProjectName
в команду
Ни один из этих решений не работал у меня. Моим решением было удалить packages/EntityFramework.6.1.3
и Restore NuGet Packages
Я заметил, что packages/EntityFramework.6.1.3/tools/EntityFramework.psd1
отсутствует, так что это была вероятная причина. Как его удалили в первую очередь, хотя я понятия не имею.
Проверьте, существует ли раздел конфигурации "entityFramework" в файле .config
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/></configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
запустить от имени администратора vs =>> открыть опнепроект
enabele-migration
add-migration migrationName
update-database
Проверьте версию Entity Framework.
если это 6.3, понизьте его до 6.2, и он должен работать просто отлично
Я использую VS2019, ничего из вышеперечисленного не работает! Это проблема самого 2019 года? Если кто-то сталкивался с этим и имеет решение, пожалуйста, поделитесь!
Проверьте, открыт ли проект в окне Solution Explorer.
Это может быть причиной вашей проблемы.