是否可以通过更新的元数据字段查询OData集合过滤?这样做的目的是获取自上次检查以来的更新列表。
我已经尝试了http://odata.netflix.com/v1/Catalog/People?$filter=updated%20eq%202011-05-15T21:45:31Z,但是它给了我“在位置0的'Netflix.Catalog.Person'类型中存在”没有属性'更新'。有没有其他方法可以执行此操作或在过滤器语句中引用更新的属性?
答案 0 :(得分:1)
ATOM提要/条目表示中的更新元素可能包含也可能不包含实际数据。有些服务实际上存储了真正更新的时间戳,但有些服务却没有。由于要求ATOM格式的所有条目都存在该元素,因此没有数据的服务通常会将一些任意时间戳作为值(默认情况下,WCF数据服务使用DateTime.Now作为更新的字段,这也是netflix服务的作用)。 $ filter只能引用给定实体的真实属性。因此,如果服务确实具有包含支持更新元素的数据的属性,则需要找到此类属性的名称(例如,在$ metadata中),然后使用它。如果服务没有这样的属性(例如netflix服务没有),则无法根据上次更新的时间戳进行过滤,因为底层数据存储中没有这样的东西(更新后的元素实际上是假)。 另请注意,如果您要求JSON有效负载,则更新的元素不存在,因此仅存在实际属性。 URL中的任何查询运算符仅适用于真实属性。