DbContextOptionsBuilder не содержит определения для UseSQLServer после обновления 5.0.11

#asp.net-core #entity-framework-core #dbcontext

Вопрос:

Сегодня мы обновили наши пакеты Nuget для EntityFrameworkCore до версии 5.0.11. К сожалению, это, похоже, испортило мою среду VS. Всякий раз, когда я пытаюсь скомпилировать, я получаю сообщение об ошибке: Severity Code Description Project File Line Suppression State Error CS1061 'DbContextOptionsBuilder' does not contain a definition for 'UseSqlServer' and no accessible extension method 'UseSqlServer' accepting a first argument of type 'DbContextOptionsBuilder' could be found (are you missing a using directive or an assembly reference?)

Оба Microsoft.EntityFrameworkCore.SqlServer и Microsoft.EntityFrameworkCore.Tools совпадают в версии 5.0.11 после обновления.

Я попытался понизить рейтинг до 5.0.7, но это не устранило проблему. Перезагрузка компьютера не сработала. Как и перезапуск Visual Studio 2019. Я очистил и перестроил проект, но при этом сохранилось то же самое сообщение об ошибке. Проект содержит ссылку using Microsoft.EntityFrameworkCore; , и он указан в моем файле .csproj. Любые другие советы по решению этой проблемы приветствуются.

Правка: Я должен сказать, что это происходит только на моей машине, так что это скорее проблема с окружающей средой. Никаких других изменений, кроме обновления пакета nuget, внесено не было. Я обновился до версии 5.0.11, и она соответствует тому, что находится в файле .csproj. Интересно, случилось ли это с кем-нибудь еще?

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

1. Пока у вас есть ссылка на пакет Microsoft.EntityFrameworkCore.SqlServer и вы импортируете Microsoft.EntityFrameworkCore пространство имен, это все, что вам нужно. Я бы попытался, как обычно, перезапустить VS, перезагрузиться, проверить, правильно ли установлен .NET SDK и т. Д. Работает ли это, если вы делаете dotnet build это из командной строки?

2. попробуйте вручную удалить все Bin Obj каталоги и во всех проектах. package И .vs каталоги и, если они у вас есть. Часто требуется для меня после обновления пакета.

3. Спасибо вам обоим за помощь! @JHBonarius ваше предложение сработало, поскольку удаление папок Bin и Obj из всех проектов и перестройка сработали. Не могли бы вы опубликовать это в качестве ответа, чтобы я мог его принять? Большое вам спасибо за вашу помощь!

Ответ №1:

По опыту я знаю, что простая очистка сборки не удаляет все. Особенно при обновлении зависимостей (пакетов) часто требуется вручную удалить Bin Obj каталоги и (всех) проектов.

В некоторых случаях также требуется удалить .vs packages каталоги и из (всех) проектов и решений. Не делайте этого, пока решение открыто в VS.