Ошибка config.MapODataServiceRoute

В настоящее время я следую этому руководству → Ссылка на сайт asp.net

Как говорится в руководстве, я добавил все необходимые пакеты через консоль nuget и добавил необходимые файлы в файл WebApIConfig., Но когда я добавил метод регистра конечной точки, VS дал мне ошибку.

Добавленный метод:

public static void Register(HttpConfiguration config)
    {
        // New code:
        ODataModelBuilder builder = new ODataConventionModelBuilder();
        builder.EntitySet<Product>("Products");
        config.MapODataServiceRoute(
            routeName: "ODataRoute",
            routePrefix: null,
            model: builder.GetEdmModel());
    }

Ошибка VS дала мне:

Error   1   'System.Web.Http.HttpConfiguration' does not contain a definition for 'MapODataServiceRoute' and no extension method 'MapODataServiceRoute' accepting a first argument of type 'System.Web.Http.HttpConfiguration' could be found (are you missing a using directive or an assembly reference?) C:\Users\rvcamp\Desktop\odataTest\odataTest\App_Start\WebApiConfig.cs   29  20  odataTest

Я проверил комментарии руководства, но эта ошибка не упоминается, также я также не могу решить эту ошибку. Что я делаю не так?

Ответ 1

У меня была эта проблема. Очень расстраивает.

Я решил это, добавив это в ссылки в верхней части кодовой страницы

using System.Web.OData.Extensions;

При щелчке правой кнопкой мыши метод не вызывал пункт меню разрешения.

Переустановка всего не помогла мне.

Ответ 2

MapODataServiceRoute доступен в коллекции маршрутов, поэтому ниже код будет

config.Routes.MapODataServiceRoute(
"odata",
 null, 
GetEdmModel(), 
new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));

Ответ 3

MapODataServiceRoute - метод расширения. Поэтому для его использования требуется ссылка на его пространство имен. Для меня это было исправлено путем ссылки:

using System.Web.Http.OData.Extensions;

Ответ 4

ДЛЯ OData V3

  • Установите Microsoft.AspNet. WebApi.OData​​li >
  • Добавить using System.Web.Http.OData.Builder; и using System.Web.Http.OData.Extensions;
  • используйте как config.Routes.MapODataServiceRoute(...)

ДЛЯ OData V4

  • Установить Microsoft.AspNet.OData​​li >
  • Добавить using System.Web.OData.Builder; и using System.Web.OData.Extensions;
  • используйте как config.MapODataServiceRoute(...)

Не зацикливайтесь на слове WebApi, они оба предназначены для веб-api.

Ответ 5

Я исправил это, открыв консоль менеджера пакетов, установив проект по умолчанию проекту, который дал сообщение об ошибке, а затем:

Install-Package Microsoft.AspNet.WebApi.OData