Почему я получаю «Не зарегистрирован ни один HTTP-маршрут без OData». - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь реализовать Odata на контроллере в первый раз и получаю сообщение об ошибке в теме. Я пробовал много разных методов, которые нашел здесь и на других сайтах, но мне не повезло.

У меня объявлен следующий контроллер.

using System.Web.Http;
using System.Collections.Generic;
using AutoMapper;
using Microsoft.AspNet.OData;
using System.Linq;
using Microsoft.AspNet.OData.Routing;
using Microsoft.AspNet.OData.Query;

namespace Site.API.Areas.Prices.Controllers
{
    public class PricesController : ODataController
    {
        IPricesManager pricesManager;

        public PricesController()
        {
            this.pricesManager = new PricesManager();
        }

        public IHttpActionResult GetPrice()
        {

            var result = this.PricesManager.RetrieveAll();

            return Ok(result.AsQueryable());
        }
    }
}

И следующее в моем WebApiConfig

ODataModelBuilder builder = new ODataConventionModelBuilder();

builder.EntitySet<PricesModel>("Prices").EntityType.HasKey(p => p.Facility);

config.MapODataServiceRoute(
            routeName: "ODataRoute",
            routePrefix: null,
            model: builder.GetEdmModel());

Если бы я вызывал любой из моих обычных API, я бы использовал:

https://localhost/API/Site.API/Prices/Prices

Для OData я пытаюсь

https://localhost/API/Site.API/odata/Prices

И в результате я получаю ошибку субъекта. Чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...