【问题标题】:$expand and $count in odata v4odata v4 中的 $expand 和 $count
【发布时间】:2017-02-27 22:06:41
【问题描述】:

我正在尝试在实体中扩展子实体,但出现以下错误:400 Bad Request

不允许查询选项“扩展”。要允许它,请在 QueryableAttribute 或 QueryValidationSettings 上设置“AllowedQueryOptions”属性。

我设置了[EnableQuery(AllowedQueryOptions = AllowedQueryOptions.All)]this 属性但没有运气,然后也触发了同样的错误。

这是我的 URI:

localhost/OData/Ticket?$expand=Location

我也尝试获取记录计数,但计数也不适合我。这是我的计数 URI。

 localhost/OData/Ticket?$count=true

但在这里我也收到 400 Bad request 错误并显示以下消息:

不支持查询参数“$count”。

我做了很多谷歌,发现了一些相关的问题,但这对我不起作用。这是我的代码:

  • 控制器:

    公共类 ODataTicketController : ODataController

    {

    [ODataRoute]
    
    [EnableQuery(AllowedQueryOptions = AllowedQueryOptions.All)]
    
    public IQueryable<Ticket> Get()
    {
          return db.Tickets;
    }
    

    }

  • 请帮助解决这个问题。

谢谢。

【问题讨论】:

    标签: api asp.net-web-api odata


    【解决方案1】:

    终于在我的控制器上处理所有 odata 查询。只需要 IQueryable 到 IHttpActionResult。现在它工作正常。这是更新的控制器。

    public class ODataTicketController : ODataController
    {      
       [EnableQuery]       
       public IHttpActionResult<Ticket> Get()
       {
          var result = db.Tickets;      
          return Ok(result);
      }
    }
    

    希望对某人有所帮助。

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-27
      • 2015-07-29
      • 2017-05-23
      • 1970-01-01
      • 2015-04-24
      • 2019-12-02
      • 1970-01-01
      相关资源
      最近更新 更多