Is it possible to get OData to do the following? I would like to be able to query a REST call by passing on parameters than may not be the primary key. Can I call a REST met
You can define a function import named GetReports that has two parameters.
(Note: the name of the function import can't be the same with entity set name)
Configure your EDM model as:
var builder = new ODataConventionModelBuilder();
builder.EntitySet("Reports");
var function = builder.Function("GetReports");
function.Parameter("Id");
function.Parameter("Year");
function.ReturnsCollectionFromEntitySet("Reports");
var model = builder.GetEdmModel();
And then write your method as:
[HttpGet]
[ODataRoute("GetReports(Id={Id},Year={Year})")]
public IHttpActionResult WhateverName([FromODataUri]int Id, [FromODataUri]int Year)
{
return Ok(_reportsRepository.GetReports(Id, Year));
}
Then the request
Get ~/GetReports(Id=22,Year=2014)
will work.