My WebApiConfig:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Applicant>("Applicants");
builder.EntitySet<Country>("Countries");
builder.EntitySet<Program>("Programs");
builder.EntitySet<Campus>("Campuses");
builder.EntitySet<AcademicYear>("AcademicYears");
builder.EntitySet<Citizenship>("Citizenships");
builder.EntitySet<ProgramChoice>("ProgramChoices");
builder.EntitySet<Application>("Applications");
builder.EntitySet<ProvinceState>("States");
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: null,
model: builder.GetEdmModel());
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{key}",
defaults: new { key = RouteParameter.Optional }
);
}
}
My Controller Get Method Returns a list of items:
[EnableQuery]
public IQueryable<ProvinceState> Get()
{
return db.ProvinceStates;
}
My Controller Get method Return one item:
[EnableQuery]
public SingleResult<ProvinceState> Get([FromODataUri] string key)
{
IQueryable<ProvinceState> result = db.ProvinceStates.Where(c => c.ProvinceStateCode == key);
return SingleResult.Create(result);
}
The problem is this:
- When I execute the LocalHost request: ### / States, the Get methods return a list of states properly without any problems.
- But when I make a LocalHost request: ### / States ('AL') to get the specific item back, I get the following error.
HTTP Error 404.0 - Not Found
The resource you are looking for has been deleted, its name has changed or is temporarily unavailable.
get, , GET. List GET.
, .