如何对odata终点应用odataqueryoptions?

时间:2017-05-10 20:51:30

标签: c# visual-studio odata dynamics-crm dynamics-crm-2016

CRM 2016提供odata端点,例如:

https://mycrmorg.com/api/data/v8.1/

它允许您在其上应用odata过滤器,例如:

  

https://mycrmorg.com/api/data/v8.1/accounts(8308AD1C-1B1A-E711-941B-00155DC0D345)

如果我有一个控制器,如:

class AccountsController
{
    public IHttpActionResult Get(ODataQueryOptions options)
  {
    var endPoint = @"https://mycrmorg.com/api/data/v8.1/";
    //how do we apply the odata query options here??

  }   
}

我们如何对此端点应用odata查询选项?

1 个答案:

答案 0 :(得分:3)

我知道您只想从ODataQueryOptions对象获取所有ODATA查询选项。您可以从RequestUri

获取
class AccountsController
{
  public IHttpActionResult Get(ODataQueryOptions options)
  {
    var stringOptions = options.Request.RequestUri.PathAndQuery;
    var endPoint = @"https://mycrmorg.com/api/data/v8.1";

    var endPointAndQuery = endPoint + stringOptions;
    //call Odata
  }   
}

stringOptions将包含例如:"/accounts?$filter=accountnumber eq '1234'",您只需将其附加到您的终端并调用其他odata api。