如何在 UseMvc 中间件之外的 .NetCore 3.1 中注册 OData 扩展方法
How to register OData extension methods in .NetCore 3.1 outside of UseMvc middleware
将我的 API 从 .net core 2.2 迁移到 3.1 后,我面临一些问题来决定我应该遵循哪种最佳方法来为我的 API 注册 OData 扩展方法。目前,我有这个代码
public void ConfigureServices(IServiceCollection services)
{
....
#region OData
services.AddOData();
#endregion
....
}
关于配置方法
public void Configure(IApplicationBuilder app, IHostEnvironment env)
{
...
app.UseAuthentication();
app.UseMvc(routeBuilder =>
{
routeBuilder.Select().OrderBy().Filter().MaxTop(1000).Count();
routeBuilder.EnableDependencyInjection();
});
...
}
如何使用以下方法注册 Select() OrderBy() Filter() ....?在不注册 UseMvc 的情况下,这是正确的做法吗?
public void Configure(IApplicationBuilder app, IHostEnvironment env)
{
...
app.UseRouting();
app.UseAuthentication();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
...
}
查看这篇文章:Experimenting with OData in ASP.NET Core 3.1。
显然.NET Core 3.0 和 3.1 还不支持 OData。但是,您可以使用 beta 版本,其步骤在文章中有说明。
更新:
从 7.3.0 版开始,它们确实支持 OData。但是,它们还不能用于端点路由。你可以关注this Github thread for updates, in particular, this answer
将我的 API 从 .net core 2.2 迁移到 3.1 后,我面临一些问题来决定我应该遵循哪种最佳方法来为我的 API 注册 OData 扩展方法。目前,我有这个代码
public void ConfigureServices(IServiceCollection services)
{
....
#region OData
services.AddOData();
#endregion
....
}
关于配置方法
public void Configure(IApplicationBuilder app, IHostEnvironment env)
{
...
app.UseAuthentication();
app.UseMvc(routeBuilder =>
{
routeBuilder.Select().OrderBy().Filter().MaxTop(1000).Count();
routeBuilder.EnableDependencyInjection();
});
...
}
如何使用以下方法注册 Select() OrderBy() Filter() ....?在不注册 UseMvc 的情况下,这是正确的做法吗?
public void Configure(IApplicationBuilder app, IHostEnvironment env)
{
...
app.UseRouting();
app.UseAuthentication();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
...
}
查看这篇文章:Experimenting with OData in ASP.NET Core 3.1。
显然.NET Core 3.0 和 3.1 还不支持 OData。但是,您可以使用 beta 版本,其步骤在文章中有说明。
更新:
从 7.3.0 版开始,它们确实支持 OData。但是,它们还不能用于端点路由。你可以关注this Github thread for updates, in particular, this answer