OData Filter查询-包含两个内容的请求不起作用



OData-具有两个包含未完成工作的查询请求

当我们试图用两个文本框进行搜索时,请找到我们从from fe(react(发送的以下查询。它不会返回任何结果。然而,具有两个下拉项/onetextbox和一个下拉项/单个textbox的oData查询有效
我们怀疑这是因为两个eq/one包含的查询可以正常工作,但两个contaisn不起作用https://locallhost/api/odata/pageoverview?$count=真&filter=(包含(偶发事件名称,%27ifrs_17%27(%20和%20包含(名称2,%27Test%27((&$

更新有一个连续的URL$,就是这个

https://localhost:3333/OverviewItem?$count=真&filter=(包含(name1,'seek'(和包含(name2,'aron'(&orderby=名称1描述,名称2描述&skip=0&顶部=10

在进一步的研究中,我们还发现,在接收值的控制器中,queryoptions上的过滤器值是混合的,就像name1的值是"aro"而不是"seek"一样。有什么方法可以纠正这个吗

public IQueryable Get(ODataQueryOptions odata({////}

url格式可能不正确。我在本地机器上测试了两个包含和其他条件。

https://localhost:[]/odata/OverviewItem?$count=true&$filter=(contains(Name1,'param1') and contains(Name2,'param2'))&$orderby=Name desc,id desc&$top=3&$skip=2

我把orderby放在过滤器之外,配置为:

app.UseMvc(routeBuilder =>
{
routeBuilder.Select().Filter().OrderBy().Count().SkipToken().MaxTop(10);
routeBuilder.MapODataServiceRoute("odata", "odata", GetEdmModel());

});

$top的值应该小于MaxTop

看起来在'contains(name2,'aron'('后面缺少一个右括号

https://localhost:3333/OverviewItem?$count=true&$filter=(contains(name1,'seek') and contains(name2,'aron') &$orderby=name1 desc,name2 desc &$skip=0&$top=10

应该是

https://localhost:3333/OverviewItem?$count=true&$filter=(contains(name1,'seek') and contains(name2,'aron'))&$orderby=name1 desc,name2 desc &$skip=0&$top=10

最新更新