问题
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?
回答1:
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.
回答2:
MapODataServiceRoute is available in Routes Collection, hence below code will do
config.Routes.MapODataServiceRoute(
"odata",
null,
GetEdmModel(),
new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));
回答3:
FOR OData V3
- Install Microsoft.AspNet.WebApi.OData
- Add
using System.Web.Http.OData.Builder;
andusing System.Web.Http.OData.Extensions;
- use like
config.Routes.MapODataServiceRoute(...)
FOR OData V4
- Install Microsoft.AspNet.OData
- Add
using System.Web.OData.Builder;
andusing System.Web.OData.Extensions;
- use like
config.MapODataServiceRoute(...)
Dont get stuck on WebApi word, they are both for web api.
回答4:
If you have upgraded to Microsoft.AspNet.OData 7.0.0
then the namespace you are looking for is:
using Microsoft.AspNet.OData.Extensions;
回答5:
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;
回答6:
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
来源:https://stackoverflow.com/questions/27224702/config-mapodataserviceroute-error