odata v4中的$ expand和$ count

时间:2016-10-18 14:52:19

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

我正在尝试扩展实体中的子实体,但会收到以下错误:400 Bad Request

  

查询选项'展开'不被允许。要允许它,请设置' AllowedQueryOptions' QueryableAttribute或QueryValidationSettings上的属性。

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

这是我的URI:

localhost/OData/Ticket?$expand=Location

我也试图获取记录数,但数量也不适用于我。这是我的URI计数。

 localhost/OData/Ticket?$count=true

但在这里我也收到400 Bad request error with following message:

  

查询参数' $ count'不受支持。

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

  • 控制器:

    公共类ODataTicketController:ODataController

    {

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

    }

  • 请帮忙解决此问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

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

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

希望它会对某人有所帮助。

谢谢。