gpt4 book ai didi

javascript - OData:Wildcard(startswith)过滤url请求中的number(ID)字段

转载 作者:行者123 更新时间:2023-11-30 18:22:57 24 4
gpt4 key购买 nike

我一直在研究一种通过 OData 和 JavaScript 对我的实体的数字 ID 字段执行模糊搜索的方法。到目前为止,我还没有找到我要找的答案。我可以使用“Startswith”过滤器选项完美地过滤其他 edm.string 列,但是当我尝试传入任何其他非字符串类型时,我从服务器返回类型错误响应。

在我控制数据库的应用程序中,我成功地解决了这个问题,方法是创建我需要的 View 并将 View 的数字类型转换为字符串。然而,这似乎有点矫枉过正,因为我可以为整个数据集创建一个 View ,这样我就可以允许用户使用通配符搜索 ID,否则 OData 查询就可以很好地工作。

有没有人找到好的解决方案?谢谢!

最佳答案

不幸的是,我认为您已经发现了最佳解决方案之一(创建 View )。您还可以创建允许您进行模糊搜索的服务操作。

您的后端使用什么?这在 LINQ-to-Entities 上不受支持,但您可以创建一个看起来像这样的服务操作(为了证明它可以工作,您可以填充 ToList() 调用在 Products 之后,确保不要将类似的东西部署到生产中 :)):

[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class ScratchService : DataService<ScratchContext>
{

[WebGet]
public IQueryable<Product> FuzzySearch(string idStartsWith)
{
var context = new ScratchContext();
return context.Products.Where(p => p.ID.ToString().StartsWith(idStartsWith));
}
// ...
}

这不是我们经常听到的问题,但我绝对可以在团队中提出来,当我们开始 OASIS 标准化流程时,我们可以考虑这个问题。

关于javascript - OData:Wildcard(startswith)过滤url请求中的number(ID)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11615864/

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