不能将"Microsoft.AspNet.OData.Routing.ODataRoute"与端点路由一起使用.ASP Net Core 2.2的例外情况

Osc*_*lop 15 odata asp.net-core asp.net-core-2.2

将ASP NET Web API项目框架升级到Core 2.2版本后,OData路由配置失败.它抛出"不能使用'Microsoft.AspNet.OData.Routing.ODataRoute'与端点路由." 例外.

链接https://github.com/Microsoft/aspnet-api-versioning/issues/361显示了如何避免异常但禁用新的Core 2.2路由模型.你能告诉我如何在不停用此功能的情况下解决问题吗?

 public IServiceProvider ConfigureServices(IServiceCollection services)
 {
      ...

      services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2).AddControllersAsServices();

      ...
 }

 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
 {

    ...

    app.UseMvc(b =>
    {
        b.Select().Expand().Filter().OrderBy().MaxTop(100).Count();
        b.MapODataServiceRoute("odata", "odata", ODataConfig.GetEdmModel());
    });
}
Run Code Online (Sandbox Code Playgroud)

Ank*_*tel 21

升级到.net core 2.2之后我遇到了同样的问题,发现.net core 2.2默认启用了端点路由,并且它们具有向后禁用它的功能.它对我有用.

services.AddMvc(options =>
                {
                  options.EnableEndpointRouting = false;
                })
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_2));
Run Code Online (Sandbox Code Playgroud)