Reputation: 241
I am trying to implement a web API endpoint that returns ODATA. But when I am trying to hit the endpoint the code in the method was executing successfully but getting 406 Not Acceptable error. Below is my code.
Controller:
using Microsoft.AspNet.OData;
using Microsoft.AspNet.OData.Extensions;
using Microsoft.AspNet.OData.Query;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
public class SalesToolsController : ODataBaseController
{
DBSQLDataContext db = new DBSQLDataContext();
[Route("api/odata/SalesTools")]
[HttpGet]
[EnableQuery]
public IEnumerable<SalesTool> Get(ODataQueryOptions options)
{
var documents = db.SalesTools;
var countQuery = options.Filter.ApplyTo(documents, new ODataQuerySettings()) as IQueryable<SalesTool>;
var count = countQuery.Count();
return documents;
}
[EnableQuery]
public SingleResult<SalesTool> Get([FromODataUri] int key)
{
IQueryable<SalesTool> result = db.SalesTools.Where(p => p.Id == key);
return SingleResult.Create(result);
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
}
WebApiConfig:
using Microsoft.AspNet.OData.Builder;
using Microsoft.AspNet.OData.Extensions;
using System.Web.Http;
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.EnableDependencyInjection();
var salesTools = new ODataConventionModelBuilder();
salesTools.EntitySet<SalesTool>("SalesTools");
config.MapODataServiceRoute("SalesTools", "odata", salesTools.GetEdmModel());
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
Can anyone help me with this, please?
Update:
Upvotes: 0
Views: 403