$filter 数字文字的后缀(“number eq '5m'”、“eq '5d'”、...)仅在 OData 2.0 中有效?

问题描述 投票:0回答:0

我发现有时可以发布一个

$filter
OData 请求,其数字文字值以一个字母为后缀,例如可以在此处进行测试“round(Freight) eq 32l”。通过删除后缀或使用后缀 m
M
L
,其工作原理也相同。如果使用 
d
f
 ,则会出现类型不匹配错误(与 
Edm.Decimal
 属性一起使用的浮点文字)。如果使用 
a
b
(以及其他),则表示语法错误。

有时,这个后缀似乎是强制性的,有时又不是。

我在 OData 标准中进行了一些搜索(我的发现如下所述)。我得出的结论是,在 OData 2.0 中,这些后缀是强制性的,但自 OData 3.0 起,这些后缀无效,并且如果某些 OData 3.0 或 4.0 服务器实现接受它们,则违反标准。

您能否证实这一点,并分享一些官方的 OData 解释来解释 OData 2.0 和 3.0 之间的这一重大变化?

我的发现:

(1)

OData 2.0 > URI 约定 > 4.5。过滤系统查询选项($filter)(虽然文本“32d”指的是带有“32”的链接,但在URL中手动设置“32d”也可以):

URI 约定 > 4.5。过滤系统查询选项 ($filter)"/>OData 2.0 ></a>
</p>(2) <p>OData 2.0 > 概述 > 6. 原始数据类型<a href=:

概述 > 6. 原始数据类型"/>OData 2.0 ></a>
</p>(3) <p>OData 3.0 > URI 约定 > 4.5。过滤系统查询选项 ($filter) > 数学函数<a href=,不再提及“32d”:

URI 约定 > 4.5。过滤系统查询选项 ($filter) > 数学函数"/>OData 3.0 ></a>
</p>(4) <p>OData 4.01 > 第 1 部分:协议 > 11.2.6.1.2 内置查询函数 > 算术函数<a href=,不再提及“32d”:

第 1 部分:协议 > 11.2.6.1.2 内置查询函数 > 算术函数"/>OData 4.01 ></a>
</p>(5) <p>OData 4.01 > 第 2 部分:URL 约定 > 5.1.1.9 算术函数<a href=:

第 2 部分:URL 约定 > 5.1.1.9 算术函数"/>OData 4.01 ></a>
</p>(6) <p>OData 4.01 > ABNF > 数字文字值<a href=

ABNF > 数字文字值"/>OData 4.01 ></a>
    </p>
	</question>
<answer tick=后缀

d

f
m
 仅在 OData V2 中允许(并且某些实现需要)。

OData V4 中的数字文字不需要或允许这些后缀。

filter odata
© www.soinside.com 2019 - 2024. All rights reserved.