Я не могу создать новый веб-API с использованием Entity Framework в .NET Core 3.1.9

#entity-framework #asp.net-core #asp.net-core-3.1 #asp.net-core-5.0

#entity-framework #asp.net-core #asp.net-core-3.1 #asp.net-core-5.0

Вопрос:

Привет, у меня возникла проблема с созданием контроллера веб-API с использованием EF, в настоящее время я использую .Net Core 3.1.9 и не готов к обновлению до .Net Core 5.0, но в то же время я не могу сгенерировать контроллер API.

введите описание изображения здесь

Появившиеся обновления похожи на приведенные нижевведите описание изображения здесь, до того, как появилась эта проблема, я просто обновил пакеты, и все работало отлично, но теперь я не могу обновить, я хочу сохранить его в версии v3.1.9 на данный момент. Заранее благодарю вас!

Комментарии:

1. Сталкиваетесь ли вы с этой проблемой при попытке создать контроллер API на основе DbContext? Если это так, попробуйте создать контроллер API без DbContext, работает ли он хорошо или нет? Кроме того, попробуйте очистить / перестроить проект и снова откройте проверку Visual Studio, если проблема исчезнет.

2. Да, у меня проблема, когда я хочу создать контроллер API на основе DbContext, иначе я могу создать пустой без проблем. я попытался очистить и перестроить проект с той же проблемой, я думаю, что все дело в обновлениях пакетов, я обновил Visual Studio, и я думаю, именно поэтому VS запрашивает обновление пакетов.. я думаю!

3. вы также можете попытаться очистить кэш NuGet: VS Tools -> Параметры -> Диспетчер пакетов Nuget -> Настройка диспетчера пакетов-> Общие -> Очистить все кеши Nuget.

4. Нет, это тоже не работает, но я собираюсь использовать пустой контроллер API, и я буду вводить зависимости вручную, в любом случае спасибо, что пытались мне помочь.

Ответ №1:

Наконец, я заработал. Я получал ту же ошибку, и вот как я исправил проблему.

  1. Перейдите в папку obj и найдите файл «ProjectName.csproj.nuget.g.props» в моем случае это: «PaymentDetailsWebAPI.csproj.nuget.g.props»
  2. Найдите Project=»$(NuGetPackageRoot)microsoft.entityframeworkcore.design вы получите что-то вроде этого:
     Project="$(NuGetPackageRoot)microsoft.entityframeworkcore.design3.1.23buildnetcoreapp2.0Microsoft.EntityFrameworkCore.Design.props"
     
  3. Теперь найдите версию пакета Nuget. В моем случае я получил «3.1.23».
  4. Теперь обновите следующие пакеты до: любой версии, которая у вас есть в вашем файле.

    Майкрософт.EntityFrameworkCore Microsoft.EntityFrameworkCore.Design Microsoft.EntityFrameworkCore.SQLServer Microsoft.EntityFrameworkCore.Инструменты