OData 8 - ODataController 上的新输入参数语法是啥?

Posted

技术标签:

【中文标题】OData 8 - ODataController 上的新输入参数语法是啥?【英文标题】:OData 8 - What is the new Input Parameter syntax on an ODataController?OData 8 - ODataController 上的新输入参数语法是什么? 【发布时间】:2021-07-29 06:09:42 【问题描述】:

对于 oData 7,此代码允许我将 id 传递给我的 oDataController 函数。

    [HttpGet]
    [EnableQuery]
    [ODataRoute("Projects(id)")]
    public IActionResult GetProjects([FromODataUri] int id)
    
        if (!ModelState.IsValid)
        
            return BadRequest(ModelState);
        
        ProjectEntity project = _Db.Projects.Where(i => i.Id == id).FirstOrDefault();
        return Ok(_AutoMapper.Map<ProjectDto>(project));
    

更新到oData8后,找不到路由。什么是新语法?没有错误。

【问题讨论】:

【参考方案1】:

@汤姆克罗斯曼,

从 ASP.NET Core OData 8.0 RC 开始,ODataRouteAttribute 就消失了。可以使用 ASP.NET Core 路由属性,例如 HttpGetAttribute 等。

我有一个帖子可以参考:

https://devblogs.microsoft.com/odata/attribute-routing-in-asp-net-core-odata-8-0-rc/

【讨论】:

以上是关于OData 8 - ODataController 上的新输入参数语法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

与 OData 控制器等效的 Odata WCF 服务功能

ASP.NET Odata Web API 的错误处理

WebApi 2 中 OData 控制器 http 请求的完整生命周期是啥

在没有实体框架的情况下创建 Odata Web API 应用程序

抽象的通用 ODataController 类导致“未找到 HTTP 资源”

使用 ASP.NET Core OData 8.0 映射动态 OData 路由