Microsoft OData в .NET CORE 5 - при добавлении OData к службам появляется отсутствующая директива using, но пакет есть

Я разрабатываю в.NET Core 5.0. (Есть руководство Сэма Сюя по переходу на dotnet core 5)

Я вернулся к абсолютному минимуму с самым простым проектом API в Visual Studio.

У меня это работало в моем проекте ранее в этом году, и он работал на ядре.NET 5.0. См. Руководство выше.

В этом проекте я создал новый проект. Затем я пошел в NuGet, чтобы получить пакет "Microsoft.AspNet.OData" версии 7.4.1.

Затем я добавил в файл запуска следующее.

public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    services.AddCors();
    services.AddControllers();

    services.AddOData();  //THIS ONE
}

Я добавил "services.AddOData" и выдает ошибку,

Ошибка CS1061 "IServiceCollection" не содержит определения для "AddOData", и не может быть найден доступный метод расширения "AddOData", принимающий первый аргумент типа "IServiceCollection" (отсутствует ли директива using или ссылка на сборку?) JobsLedger.API C:\Users/.../JobsLedger.API\Startup.cs 35 Активно

Я уже добавил пакет, необходимый для этой услуги. Теперь у меня это работало пару месяцев назад.

Есть ли новый пакет, который вам нужно добавить?

Что я делаю неправильно, или это "критическое изменение", о котором я не знаю?

2 ответа

если вы используете .net5.0, требуется предварительный просмотр odata 8.0.

В rc2, согласно этой статье https://devblogs.microsoft.com/odata/attribute-routing-in-asp-net-core-odata-8-0-rc/, Сэм Сюй внес критические изменения.

«AddOData заменяется расширениями в ISerivceCollection на расширение в IMvc(Core)Builder.Миграция выполняется легко, сначала вызывая AddControllers(), а затем вызывая AddOData() ».

      services.AddControllers()
        .AddOData(opt => opt.AddModel("odata", GetEdmModel()));

Для .Net 7.0 AddOData работает с IMvcBuilder, как показано ниже.

      services.AddMvc().AddOData();

Ссылка:https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.odata.odatamvcbuilderextensions.addodata?view=odata-aspnetcore-8.0 .

Другие вопросы по тегам