config.MapODataServiceRoute错误

我目前正在关注本指南 – > 链接到asp.net网站

正如指南所说,我通过nuget控制台添加了所有必需的软件包,并将必要的使用添加到WebApIConfig文件中。 。 但是当我添加端点寄存器方法VS给了我一个错误。

我添加的方法:

public static void Register(HttpConfiguration config) { // New code: ODataModelBuilder builder = new ODataConventionModelBuilder(); builder.EntitySet("Products"); config.MapODataServiceRoute( routeName: "ODataRoute", routePrefix: null, model: builder.GetEdmModel()); } 

错误VS给了我:

 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 

我检查了指南的注释,但没有提到此错误,我也无法解决错误。 我究竟做错了什么?

我刚遇到这个问题。 非常令人沮丧。

我通过在代码页顶部的引用中添加它来解决它

 using System.Web.OData.Extensions; 

右键单击该方法也没有显示解析菜单项。

重新安装一切都没有为我解决任何问题。

MapODataServiceRoute在Routes Collection中可用,因此下面的代码可以

 config.Routes.MapODataServiceRoute( "odata", null, GetEdmModel(), new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer)); 

对于OData V3

  1. 安装Microsoft.AspNet。 WebApi .OData
  2. using System.Web.Http.OData.Builder;添加using System.Web.Http.OData.Builder;using System.Web.Http.OData.Extensions;
  3. 使用像config.Routes.MapODataServiceRoute(...)

对于OData V4

  1. 安装Microsoft.AspNet.OData
  2. using System.Web.OData.Builder;添加using System.Web.OData.Builder;using System.Web.OData.Extensions;
  3. config.MapODataServiceRoute(...)一样使用

不要停留在WebApi上,它们都是针对web api的。

MapODataServiceRoute是扩展方法。 因此,要使用它,需要引用其命名空间。 对我来说,它通过引用修复:

 using System.Web.Http.OData.Extensions; 

如果您已升级到Microsoft.AspNet.OData 7.0.0那么您要查找的命名空间是:

 using Microsoft.AspNet.OData.Extensions; 

我通过打开包管理器控制台,将默认项目设置为提供错误消息的项目来修复此问题,然后:

 Install-Package Microsoft.AspNet.WebApi.OData