3

私は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 と比較できないという例外が発生します。

このアプローチでこれが可能かどうかを私に尋ね始めています...

4

1 に答える 1

5

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'"
于 2012-02-02T15:27:07.723 に答える