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'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 回答