为什么 ADO.NET 数据服务使用 $ 作为查询参数标识符?
/Customers?$skip=30&$top=10
您需要“吗?” 或“&” AND '$' 来标识查询参数?
这是实现泄漏到接口中的情况吗? 我不一定想向用户公开我正在使用 .NET 数据服务的明目张胆的事实。 特别是,如果以后我想将实现更改为另一种技术...
或者,是否有一种简单的方法可以禁用“$”来识别查询选项的需要?
所以它看起来更漂亮......
/Customers?skip=30&top=10
谢谢
/Customers?$skip=30&$top=10
Is there a reason why you need '?' or '&' AND '$' to identify a query parameter?
Is this a case of the implementation leaking into the interface? I dont necessarily want to expose to users the blatant fact that I'm using .NET Data Services. especially, if at a later date I want to change the implementation to another technology...
Or, is there an easy way to disable the need for the '$' to identify a query option?
So it looks like a much more presentable...
/Customers?skip=30&top=10
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
以
$
字符开头的查询字符串选项称为系统查询选项,表示 ADO.NET 数据服务支持的操作。 基本上,这样做是为了区分系统范围的“关键字”和模型属性名称。要解决此问题,您可以尝试将网址从
/Customers?skip=30&top=10
重写为/Customers?$skip=30&$top=10
或甚至在 HTTP 标头中传输此系统信息(如果可以选择)。Query string options that start with the
$
character are known as System Query Options and denote actions support by ADO.NET Data Services. Basically, this is done to distinguish system-wide "keywords" from model property names.To solve this issue, you may try rewriting your URLs from
/Customers?skip=30&top=10
to/Customers?$skip=30&$top=10
or even transfer this system information in HTTP headers (if this is an option).