Как я могу сделать основной проект Entity Framework и добавить миграцию в Visual Studio 2015 из приглашения nuget?
в Visual Studio 2015 я создал ASP.net основной проект (ранее называемый ASP.NET 5). Шаблон для проекта создает локальную базу данных MS SQL для сохранения, а также Entity framework и некоторые таблицы проверки подлинности.
после того, как я выяснил, как просматривать базу данных localdb, которая была создана для этого проекта, я решил попробовать изменить объект модели и попробовать первую миграцию кода с помощью ASP.NET пример приложения шаблона веб-сайта MVC. Он использует EF для обеспечения сохранение входа в localdb. Я попытался использовать
демо-приложение уже включает в себя папку миграции. Но если вы наберете add-migration SomeNameHere
в консоль диспетчера пакетов или enable-migrations
кажется, что невозможно работать с миграциями ER с образцами проектов.
я добавил свойство string в IdentityModel.cs
unit, и я попытался вручную добавить его вручную в 0000...IdentitySchema.cs
файл, но, очевидно, я не знаю, как это сделать правильно, так как при запуске приложения я получил некоторые ошибки, показанные ниже. Я считаю, что мне нужно в основном иметь инструмент Entity Framework code-first для создания некоторого скелета .блок cs, который собирается перейти в папку миграции.
обычные вещи, которые люди предлагают сделать сейчас:
- убедитесь, что вы бежали как администратор. (Готово)
- убедитесь, что вы удалите Entity Framework и переустановите его в решение, в котором он должен быть активен (готово)
переустановка посмотрел например, из консоли диспетчера пакетов:
PM> Uninstall-Package EntityFramework
Uninstalling NuGet package EntityFramework.7.0.0-beta4.
Successfully uninstalled 'EntityFramework.7.0.0-beta4' from WebApplicationDNX.
PM> Install-Package EntityFramework -IncludePrerelease
Installing NuGet package EntityFramework.7.0.0-beta4.
Successfully installed 'EntityFramework.7.0.0-beta4' to WebApplicationDNX.
PM>
здесь я считаю, что я делаю ошибку, потому что я пытаюсь запустить команду, такую как add-migration, и я не могу этого сделать. Оказывается, это никогда не поддерживалось для меня, чтобы попробовать такие вещи:
PM> add-migration DummyMigrate
add-migration : The term 'add-migration' is not recognized as the name of a cmdlet, function, script file, or operable program. ....
PM> enable-migration
enable-migration : The term 'enable-migration' is not recognized as the name of a cmdlet, function, script file, or operable program.
...
можно ли получить миграцию entity framework для работы из Visual Studio 2015, из ASP.NET 5 Preview Templates -> Web Site
шаблон на основе приложения?
(обновления от 1 до 4 удалены, поскольку они бесполезны betas)
обновление 5: в asp.net core 1.0.0-RC2 инструмент dnx ушел, заменив dotnet, но основной принцип, что dotnet ef
команда необходимо запустить из исходного каталога проекта не из вашего каталога решений, и для этого вам, вероятно, следует использовать внешнюю командную строку или использовать инструменты PowerShell для Visual Studio, а не командную строку nuget.
solution-dir project-source-dir
| |
d:devAspNetCoreWebApsrcAspNetCoreWebAp>dotnet ef
Project AspNetCoreWebAp (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing
Compiling AspNetCoreWebAp for .NETCoreApp,Version=v1.0
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:03.0846647
_/__
---==/
___ ___ |. |
| __|| __| | ) \
| _| | _| _/ | //|
|___||_| / \/
Entity Framework .NET Core CLI Commands 1.0.0-preview1-20901
Usage: dotnet ef [options] [command]
2 ответов
вы пропустили шаг. От документация в то время, когда ваша бета-версия 8 была активна, отсутствующая команда была бы:
Install-Package EntityFramework.Commands -Pre
чтобы сделать команды миграции доступными в вашем проекте.
на Commands
были перемещены в отдельный пакет, предположительно, чтобы сделать основную структуру более легкой для производства, где вы не можете использовать и не нуждаетесь в командной строке коммунальные услуги.
ответ-обновление-внесено-Уорреном: в Asp.net core 1.0.0-RC2 соответствующий пакет называется Microsoft.EntityFrameworkCore.Tools
и он, похоже, является частью ASP.Net основной шаблон веб-приложения делает оригинальную проблему маловероятной, если кто-то действительно не повредит свой проект.формат JSON. Команды миграции командной строки " EF " не должны выполняться из консоли диспетчера пакетов, которая не является общей средой для команд DOTNET.
следующее применимо только к dnx, который был частью ASP.NET ядро RC1. Это было заменено и не применимо часть ASP.NET ядро.
отвечая на ваши вопросы относительно лучшего способа, которым вы ищете, чтобы запустить команду dnx:
моя команда dnx также давала ошибку.
термин " dnx " не распознается как имя командлета, функции,
в обоих моих визуальный менеджер студии пакет консоли и Windows powershell.
после большого разочарования я смог его решить.
вот шаги, которые я сделал, чтобы заставить его работать
- закройте все экземпляры Visual Studio
- удалить .DNX на папку в\C:\Users\YOURUSERNAME.DNX на. Мой был намного больше 1 GB
- Открыть Visual Studio 2015. Создать новый шаблон по умолчанию ASP.NET 5 веб-приложение. Постройте и запустите его. Это воссоздаст .папка DNX на. Впоследствии размер папки был почти 600мб
- Открыть Powershell
-
перейдите к .каталог DNX bin
cd\ cd users\YOURUSERNAME\.dnx\bin
-
выполнить команду
.\dnvm upgrade
если Вы сообщение об ошибке " выполнение скриптов отключено в этой системе.- тогда выполните следующую команду, чтобы сначала получить разрешение
Set-ExecutionPolicy RemoteSigned
Откройте Visual Studio. Затем вы сможете ввести команду dnx как в консоли диспетчера пакетов, так и в powershell
dnx
и он узнает его