簡體   English   中英

使用OData和自定義查詢選項獲取路由

[英]Get route using OData and custom query options

我們有一個控制器,它在get路徑中需要一些參數,但是像$top這樣的OData函數不起作用。

根據文檔它(自定義查詢選項)應該正常工作只是在自定義選項聲明@前綴但它不是:

  • 使用@作為前綴(如文檔中所建議),參數filtro未被填充並獲取其所有屬性的默認值。
  • 不使用前綴它不會返回錯誤,但是$top函數被忽略,我得到的記錄太多了(2K +)。

這里有一個類似的東西的另一個答案 ,但我們使用的OData V3沒有明確的Edm Model Builders,它是推斷的。

你們有沒有解決這個問題?

這是我的代碼:

GET請求:

~/ProdutosRelevantes?$top=5&
    filtro.Cnpjs[0]=00000000000001&
    filtro.DataInicio=2018-01-01&
    filtro.DataFim=2018-12-01&
    filtro.IndMercado=2&

控制器方法:

[HttpGet]
public IHttpActionResult ProdutosRelevantes([FromUri] ParametrosAnalise filtro)
{
    var retorno = GetService().GetProdutosRelevantes(filtro);
    return Content(HttpStatusCode.OK, retorno);
}
 public class ParametrosAnalise { public Guid IdCliente { get; set; } public string[] Cnpjs { get; set; } public DateTime? DataInicio { get; set; } public DateTime? DataFim { get; set; } public EnumEscopoMercado? IndMercado { get; set; } // Enum declaration public enum EnumEscopoMercado { [Description("INCLUI NACIONAL")] InternoEExterno = 1, [Description("EXTERIOR")] Externo = 2 } } 

謝謝。

您是否在動作中使用[EnableQuery]裝飾器啟用了oData? 或者在你的HttpConfiguration => config.EnableQuerySupport()中?

https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM