В Visual Studio 2015 я создал проект ASP.net Core (ранее называвшийся ASP.NET 5). Шаблон для проекта создает локальную базу данных MS SQL для постоянства вместе с инфраструктурой сущностей и некоторыми таблицами аутентификации.
После того, как я понял, как просматривать базу данных localdb, созданную для этого проекта, я решил попробовать изменить объект модели и выполнить первую миграцию кода с помощью образца приложения-шаблона веб-сайта ASP.NET MVC. Он использует EF для обеспечения сохранения входа в локальную базу данных. Я попытался использовать
Демонстрационное приложение уже включает папку Migrations. Но если вы наберете add-migration SomeNameHere
в консоли диспетчера пакетов или enable-migrations
, кажется, что невозможно работать с миграциями ER с примерами проектов.
Я добавил строковое свойство в модуль IdentityModel.cs
и попытался вручную добавить его вручную в файл 0000...IdentitySchema.cs
, но, очевидно, я не знаю, как это сделать правильно, так как при запуске приложения я получил некоторые ошибки, показанные ниже. Я считаю, что в основном мне нужно, чтобы инструмент Entity Framework code-first сгенерировал некоторый скелет модуля .cs, который будет помещен в папку Migrations.
Обычные вещи, которые люди предлагают делать сейчас, это:
- Убедитесь, что вы запускали от имени администратора. (Готово)
- Убедитесь, что вы удалили 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.
...
Можно ли заставить миграцию сущности работать из Visual Studio 2015 из приложения на основе шаблона ASP.NET 5 Preview Templates -> Web Site
?
(обновления с 1 по 4 удалены как бесполезные исторические бета-версии)
Обновление 5: в asp.net core 1.0.0-RC2 инструмент dnx был удален, заменен dotnet, но основной принцип, согласно которому команду dotnet ef
должен запускать из исходного каталога проекта, а не из вашего Solution, и для этого вам, вероятно, следует использовать внешнюю командную строку или инструменты PowerShell для Visual Studio, а не приглашение командной строки nuget.
solution-dir project-source-dir
| |
d:\dev\AspNetCoreWebAp\src\AspNetCoreWebAp>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]