Asp.net web api 如何为asp.net OData webservice创建批处理端点/在何处创建批处理端点

Asp.net web api 如何为asp.net OData webservice创建批处理端点/在何处创建批处理端点,asp.net-web-api,odata,Asp.net Web Api,Odata,我一直在看学校的教程 创建OData Web服务 我的服务设置如下: var modelBuilder = new ODataConventionModelBuilder(); modelBuilder.EntitySet<Analytic>("Analytics"); var edmModel = modelBuilder.GetEdmModel(); config.Routes.MapODataRoute( routeName: "Odata", routePr

我一直在看学校的教程 创建OData Web服务

我的服务设置如下:

var modelBuilder = new ODataConventionModelBuilder();

modelBuilder.EntitySet<Analytic>("Analytics");

var edmModel = modelBuilder.GetEdmModel();

config.Routes.MapODataRoute(
   routeName: "Odata",
   routePrefix: "odata",
   model: edmModel);
正如这里所指出的

我发现下面的页面建议我需要明确地设置BatchHandler

config.Routes.MapODataRoute(
                routeName: "defaultOdata",
                routePrefix: "odata",
                model: GetModel(),
                batchHandler: new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));
但是
DefaultODataBatchHandler
似乎不存在。事实上,
System.Web.Http.OData.Batch
似乎根本不存在。我使用的是
Microsoft.AspNet.WebApi.OData版本4.0.30506

我试图更新到夜间构建,但这不起作用(不知道是否有人可以告诉我如何才能让它工作?)


我认为我只需要等待一个新版本发布,这对吗

Tom,您可以尝试以下方法,看看它是否解决了您升级到夜间版本的问题:

  • 卸载“Microsoft.AspNet.Mvc.FixedDisplayModes”软件包

  • 使用文章中提到的命令升级OData包

  • 启动应用程序时,可能会看到以下错误:

    [A] System.Web.WebPages.Razor.Configuration.HostSection无法强制转换为[B]System.Web.WebPages.Razor.Configuration.HostSection。类型A源于位于位置“C:\windows\Microsoft.Net\assembly\GAC\U MSIL\System.Web.WebPages.Razor\v4.0\U 2.0.0.0\UU 31bf3856ad364e35\System.Web.WebPages.Razor”的上下文“Default”中的“System.Web.WebPages.Razor,Version=2.0.0.0.0\UUU 31bf3856ad364e35”。类型B源于“C:\Windows\Microsoft.NET\Framework\v4.0.30319\临时ASP.NET文件\root\cae46085\829a2d25\assembly\dl3\F12EAEB\d73d086c\U ca6dce01\System.Web.WebPages.Razor.dll”上下文“Default”中的“System.Web.WebPages.Razor,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”

  • 要修复上述错误,请将Web.config中的程序集绑定修改为以下内容:
    
    

  • 您现在应该能够成功启动应用程序

config.Routes.MapODataRoute(
                routeName: "defaultOdata",
                routePrefix: "odata",
                model: GetModel(),
                batchHandler: new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));