Microsoft OData не может использовать только дату в $ filter (v7) - PullRequest
0 голосов
/ 02 июля 2018

Это работало в Odata v6, но теперь выдает ошибку в v7

$filter=CreateDateUtc gt 2014-06-23

В приведенном выше примере CreateDateUtc будет DateTimeOffset. Я не уверен, что изменилось между версиями, которые нарушили эту функциональность.

Возвращенная ошибка: «Запрос, указанный в URI, недействителен. Оператор приведения не определен между типами« Microsoft.OData.Edm.Date »и« System.Nullable`1 [System.DateTimeOffset] '. »

Я пытался перейти на v7.5, но это не помогло.

Я в порядке написания собственного кода, чтобы справиться с этим, но я не совсем то, с чего мне начать Я попытался использовать пользовательский ODataUriResolver, где я переопределил метод PromoteBinaryOperandTypes, но это не помогло. Это лучший способ сделать пользовательский атрибут EnableQueryAttribute, где я изменяю фактический запрос?

Любое руководство будет чрезвычайно полезным.

1 Ответ

0 голосов
/ 03 июля 2018

OData не может преобразовать константу в дату и время, поскольку она ожидает полную константу даты и времени:

$filter=CreateDateUtc gt 2014-06-23T00:00:00Z

Или вы можете использовать функцию date () для преобразования вашей собственности в дату:

$filter=date(CreateDateUtc) gt 2014-06-23
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...