Сравнение значений DateTime в EntitySQL при запуске со строки запроса

Я использую QueryBuilder следующим образом:

var queryString = String.Format(
    "SELECT VALUE e FROM Entity AS e WHERE e.EndDate {0} {1} ",
    operator,
    DateTime.Today.AddYears(1).ToString("d", DateTimeFormatInfo.InvariantInfo)
);
ObjectQuery<Entity> query = new ObjectQuery<Entity>(queryString, Context);

Обратите внимание, что я чрезвычайно упростил этот пример и что моя цель - создать запрос в виде строки перед созданием QueryBuilder пример. (Пока это возможно)

Я уже попробовал следующее

...DateTime.Today.AddYears(1)...
...DateTime.Today.AddYears(1).ToString()...
...DateTime.Today.AddYears(1).ToString("yyy\MM\dd")...

все это приводит к исключению, которое говорит, что я не могу сравнивать DateTime со String или с Int32.

Я начинаю спрашивать меня, возможно ли это вообще при таком подходе...

1 ответ

Решение

В Entity SQL литералы DateTime должны быть выражены в следующем формате:

DATETIME'2012-02-02 16:26'

где обе части даты и времени являются обязательными. Например:

"SELECT VALUE e FROM Entity AS e WHERE e.EndDate > DATETIME'2012-02-02 16:26'"
Другие вопросы по тегам