В Visual Studio 2015 я создал проект ASP.net Core (ранее называвшийся ASP.NET 5). Шаблон для проекта создает локальную базу данных MS SQL для сохранения, наряду с инфраструктурой сущностей и некоторыми таблицами аутентификации.
После того, как я выяснил, как просматривать базу данных localdb, созданную для этого проекта, я решил попробовать изменить модельный объект и попытаться выполнить Первую миграцию кода с помощью примера образца шаблона веб-сайта ASP.NET MVC. Он использует EF, чтобы обеспечить постоянство входа в localdb. Я попытался использовать
В демонстрационном приложении уже есть папка Migrations. Но если вы введете add-migration SomeNameHere
в консоль диспетчера пакетов или enable-migrations
, кажется, что невозможно работать с ER-мигрантами с образцовыми проектами.
Я добавил свойство string в блок IdentityModel.cs
, и я попытался вручную добавить его вручную в файл 0000...IdentitySchema.cs
, но, очевидно, я не знаю, как это сделать правильно, как при запуске приложения, Я получил некоторые ошибки, показанные ниже. Я считаю, что мне нужно, чтобы вначале инструмент Entity Framework с кодом сгенерировал блок скелета .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
должна запускаться из исходного каталога проекта не из каталога решений, и для этого вам, вероятно, следует использовать внешнюю командную строку или использовать PowerShell Tools для 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]