2017-02-17 15 views
1

Я работаю над проектом, который был создан с использованием версии ядра dotnet с использованием файла project.json. Мне удалось добавить миграции баз данных и создать базу данных с помощью команд dotnet ef cli в VS Code (добавить миграции, обновление и т. Д.).Не удается добавить миграции в базу данных после миграции .net core

Однако, я недавно перенес проект, используя команду dotnet migrate, так что теперь мой проект имеет файл .csproj. Мне нужно добавить больше миграции базы данных, но когда я запускаю команды cli, появляется ошибка, указывающая, что файл project.json не найден.

Я посмотрел документацию онлайн (и обыскал в Интернете), и я не могу найти ничего, говоря мне, что я мог пропустить. FWIW, здесь возможны соответствующие пакеты в моем файле .csproj:

<PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.0" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.0" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.0" /> 

    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.1.0-preview4-final" /> 

ответ

3

Новые версии инструмента были выпущены для нового способа делать вещи. Вам необходимо изменить свою версию Microsoft.EntityFrameworkCore.Tools.DotNet от 1.1.0-preview4-final до 1.0.0-msbuild3-final.

Вы можете увидеть различные последние версии here на Nuget.

+0

Когда я изменяю зависимость и выполняю восстановление, я получаю это предупреждение: указанная зависимость была Microsoft.EntityFrameworkCore.Tools.DotNet (> = 1.1.0-msbuild3-final), но в итоге появилась Microsoft.EntityFrameworkCore.Tools.DotNet 1.1. 0-preview4-окончательным. О, и я нашел [Блог Джули Лерман] (https://www.goodreads.com/author/show/1892325.Julia_Lerman/blog), где она упоминает то же самое, что и вы. –

+0

Версия на самом деле '1.0.0-msbuild3-final', а не' 1.1.0-msbuild3-final'. Обновите это, и вы должны быть добрым, чтобы пойти - я сначала разместил неправильно, обновил сейчас = D. – steamrolla

1

Если вам не нужны «DotNet эф» инструменты, специально вы также можете использовать встроенную версию VS Powershell (Если вам понадобится Dotnet эфф инструменты, возможно, после steamrolla в ниже может помочь вам):

я использую следующие ссылки пакет:

<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.0" /> 
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0-preview4-final" /> 

с этими ссылками набор, можно использовать EF-Tools (Add-миграции, Update-Database , ...) из консоли диспетчера пакетов.

+0

«DotNetCliToolReference» кажется прекрасным для меня. – steamrolla

+1

Кажется, что разница между Microsoft.EntityFrameworkCore.Tools.DotNet и Microsoft.EntityFrameworkCore.Tools. Версия DotNet предназначена для команд «dotnet ef», а одна без Dotnet - для обычной интеграции VS. См. Https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ – Fionn

+0

Исправить. Если вы прокрутите страницу вниз, чтобы заглянуть в «Обновление пакетов инструментов», они вызывают это и говорят, что если вы используете команды 'dotnet ef', вам нужно использовать версию' .DotNet'. Все, что было сказано, в этом вопросе есть еще одна вещь: новый способ «.csproj» делать вещи. – steamrolla

 Смежные вопросы

  • Нет связанных вопросов^_^