I am currently following this guide -> Link to asp.net website
As the guide says I added all the necessary packages via the nuget console and added the necessary usings to the WebApIConfig file. . But when I added the endpoint register method VS gave me an error.
The method I added:
public static void Register(HttpConfiguration config)
{
// New code:
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Product>("Products");
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: null,
model: builder.GetEdmModel());
}
The Error VS gave me:
Error 1 'System.Web.Http.HttpConfiguration' does not contain a definition for 'MapODataServiceRoute' and no extension method 'MapODataServiceRoute' accepting a first argument of type 'System.Web.Http.HttpConfiguration' could be found (are you missing a using directive or an assembly reference?) C:\Users\rvcamp\Desktop\odataTest\odataTest\App_Start\WebApiConfig.cs 29 20 odataTest
I checked the comments of the guide but this error is not mentioned, also I can not resolve the error either. What am I doing wrong?
I just had this problem. Very frustrating.
I resolved it by adding this in the references at the top of the code page
using System.Web.OData.Extensions;
Right clicking the method did not bring up the resolve menu item either.
Reinstalling everything did no resolve anything for me.
MapODataServiceRoute is available in Routes Collection, hence below code will do
config.Routes.MapODataServiceRoute(
"odata",
null,
GetEdmModel(),
new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));
FOR OData V3
- Install Microsoft.AspNet.WebApi.OData
- Add
using System.Web.Http.OData.Builder;
and using System.Web.Http.OData.Extensions;
- use like
config.Routes.MapODataServiceRoute(...)
FOR OData V4
- Install Microsoft.AspNet.OData
- Add
using System.Web.OData.Builder;
and using System.Web.OData.Extensions;
- use like
config.MapODataServiceRoute(...)
Dont get stuck on WebApi word, they are both for web api.
If you have upgraded to Microsoft.AspNet.OData 7.0.0
then the namespace you are looking for is:
using Microsoft.AspNet.OData.Extensions;
MapODataServiceRoute
is extension method. So to use it a reference to its namespace is required. For me it was fixed by referencing:
using System.Web.Http.OData.Extensions;
I fixed this by opening the package manager console, setting the default project to the project that gave the error message, and then:
Install-Package Microsoft.AspNet.WebApi.OData