Я пытаюсь реализовать 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
И в результате я получаю ошибку субъекта. Чего мне не хватает?