gpt4 book ai didi

c# - 使用 OData 和自定义查询选项获取路线

转载 作者:太空狗 更新时间:2023-10-29 21:37:29 25 4
gpt4 key购买 nike

我们有一个 Controller ,它需要获取路由中的一些参数,但是像 $top 这样的 OData 函数不工作。

According to the docs它(自定义查询选项)只需在自定义选项中声明 @ 前缀就可以正常工作,但它不是:

  • 使用 @ 作为前缀(如文档中所建议)参数 filtro 未被填充并为其所有属性获取默认值。
  • 不使用前缀它不会返回错误,但 $top 函数被忽略,我得到太多记录无法显示 (2K+)。

There is another answer here on SO to something similar ,但我们使用的是 OData V3,它没有明确的 Edm 模型构建器,这是推断的。

你们解决过这样的问题吗?

这是我的代码:

GET 请求:

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

Controller 方法:

[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://learn.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options

关于c# - 使用 OData 和自定义查询选项获取路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53066456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com