Могу ли я отфильтровать ресурсы OData по дате последнего обновления? - PullRequest
0 голосов
/ 16 мая 2011

Можно ли запросить фильтрацию коллекции OData по обновленному полю метаданных? Для этого нужно получить список обновлений с момента последней проверки.

Я пробовал http://odata.netflix.com/v1/Catalog/People?$filter=updated%20eq%202011-05-15T21:45:31Z,, но он дает мне сообщение «Нет обновленного свойства» в типе «Netflix.Catalog.Person» в позиции 0 ». Есть ли другой способ сделать это или ссылаться на обновленное свойство в операторе фильтра?

1 Ответ

1 голос
/ 16 мая 2011

Обновленный элемент в представлении подачи / ввода ATOM может содержать или не содержать фактические данные.Некоторые сервисы на самом деле хранят действительно обновленную временную метку, но некоторые этого не делают.Поскольку элемент должен присутствовать во всех записях в формате ATOM, службы, у которых нет данных для использования там, обычно помещают в качестве значения произвольную временную метку (по умолчанию службы данных WCF используют DateTime.Now для обновленного поля,что делает и сервис Netflix).$ Filter может ссылаться только на реальные свойства данного объекта.Поэтому, если у службы есть свойство, которое содержит данные, поддерживающие обновленный элемент, вам необходимо узнать имя такого свойства (например, в $ metadata), а затем использовать его.Если у службы нет такого свойства (например, у службы netflix), то нет способа фильтрации на основе последней обновленной отметки времени, поскольку в базовом хранилище данных такого нет (обновленный элемент фактически являетсяне настоящие).Также обратите внимание, что если вы запрашиваете полезную нагрузку JSON, обновленного элемента там не существует, и поэтому присутствуют только реальные свойства.Любые операторы запросов в URL работают только с реальными свойствами.

...