0

如何使用 OData 创建跨属性比较过滤器。即类似的东西

/Orders?$filter=OrderDate gt ShippedDate

所有 OData 示例仅在过滤器表达式的右侧显示文字。

OData 可以做到这一点,还是我错过了什么?

4

2 回答 2

3

你当然可以这样做。这是来自 Netflix 的查询,比较了 DVD 和蓝光影片的可用日期

http://odata.netflix.com/Catalog/Titles?$filter=Dvd/AvailableFrom%20gt%20BluRay/AvailableFrom
于 2012-12-12T20:06:54.633 回答
1

但是当然,这里是相关的ABNF,表明左右值是可以互换的,两者都可以是memberExpr或者boolFunctionCallExpr甚至是非bool表达式(eg: lowercase(Category/Slug) eq lowercase(substring(ProcuctName,10) )。

commonExpr                  =   [ WSP ] (
                                    boolCommonExpr / 
                                    methodCallExpr /
                                    parenExpr / 
                                    literalExpr / 
                                    addExpr /
                                    subExpr / 
                                    mulExpr / 
                                    divExpr /
                                    modExpr /  
                                    negateExpr / 
                                    memberExpr / 
                                    firstMemberExpr / 
                                    castExpr / 
                                    functionCallExpr 
                                ) [ WSP ]

ltExpr                      =   commonExpr WSP "lt" WSP commonExpr
于 2012-12-13T14:00:24.580 回答