Как я могу сделать основной проект 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]

enter image description here

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

и он узнает его

enter image description here