2

我有以下方法用于使用 EF 按日期过滤 ObjectQuery:

public List<T> FilterObjectSetByDate<T>(ObjectQuery<T> inputQuery, string dateColumn) where T : class
{
    ObjectQuery<T> filteredQuery = inputQuery.Where("(dateadd(dd,0, datediff(dd,0, it" + dateColumn + ")) = @p0)");
    ObjectParameter objParam = new ObjectParameter("p0", DateTime.Now);
    filteredQuery.Parameters.Add(objParam);

    return filteredQuery.ToList();
}      

这导致以下错误:

'dateadd' cannot be resolved into a valid type or function.

有没有办法使用实体框架返回给定日期的记录列表(忽略 DateTime 的时间部分)?

4

2 回答 2

1

好吧,今天早上想通了:

Where("SqlServer.datediff('DAY'," + dateColumn + ", @p{1}) = 0")
于 2012-09-05T07:06:45.950 回答
0

谷歌搜索建议使用"SqlServer.dateadd...而不是仅仅使用"dateadd...,类似地 for datediff

于 2012-09-04T13:02:43.563 回答