Создание запроса даты OData v3 в C# - PullRequest
0 голосов
/ 18 июня 2020

У меня есть узел в контроллере, который должен возвращать список контактов, созданных за последние четырнадцать дней. Меня попросили использовать для этого запрос OData. Модель контакта имеет свойство CreatedOn, которое дает вам дату создания контакта, я использую DateTime.Now.AddDays(-14). Запрос OData, который я придумал, -

"api/Contact?$filter=CreatedOn ge " + DateTime.Now.AddDays(-14).ToString("s") + ".000Z"

, но он работает частично, то есть я получаю дату, когда последние четырнадцать дней начинаются в соответствии с сегодняшней датой, но он не возвращает контактов, вместо этого выдает ошибку

"Microsoft.Data.OData.ODataException: Syntax error at position 20 in "CreatedOn ge 2020-06-04T07:47:42.000Z

, что странно, потому что, я думаю, эта позиция не плохо сформирована. Так что, если кто-нибудь может мне с этим помочь, я буду очень признателен :)

Ответы [ 2 ]

1 голос
/ 25 июня 2020

попробуйте этот синтаксис, обратите внимание, что между datetime и значением

$filter=CreatedOn ge datetime'2020-06-04T07:47:42.000Z'

приветствую,

Майк

нет пробелов или скобок
0 голосов
/ 02 июля 2020

Я действительно получил помощь и получил ответ, прежде чем проверять его здесь, поэтому я собираюсь опубликовать его. Это похоже на ответ @Michael в том смысле, что мне пришлось использовать Datetime перед выполнением операции, которая будет выполняться, когда начнутся последние четырнадцать дней. Получилось так:

$filter=CreatedOn ge DateTime'" + DateTime.Now.AddDays(-14).ToString("s") + "'"

Очень признателен, что Майк не торопился ответить на мой вопрос, и мне очень жаль, что я не ответил раньше.

...