15

我需要从我的数据库中返回一个项目列表,这些项目在项目提供的日期的预定时间到期。我的错误代码如下:

return All().Where(o => new DateTime(o.expiry_date.Year, o.expiry_date.Month, o.expiry_date.Day, 17, 30, 0) >= DateTime.Now)

我得到的错误是:

LINQ to Entities 仅支持无参数构造函数和初始化程序

有谁知道我该如何解决这个问题?

4

3 回答 3

31

请改用EntityFunctions。也许是 CreateDateTime方法。

所以可能是这样的:

return All().Where(o => EntityFunctions.CreateDateTime(o.expiry_date.Year, o.expiry_date.Month, o.expiry_date.Day, 17, 30, 0) >= DateTime.Now)

更新:

使用 EF6 时,请改用DbFunctions

于 2012-12-06T10:19:13.323 回答
8

您可以使用:

var result = await db.Articles
          .Where(TruncateTime(x.DateCreated) >= EntityFunctions.TruncateTime(DateTime.Now))
          .ToListAsync();
于 2015-03-24T09:01:07.123 回答
2

Please use:

return All().Where(o => EntityFunctions.CreateDateTime(o.expiry_date.Year, o.expiry_date.Month, o.expiry_date.Day, 17, 30, 0) >= DateTime.Now)
于 2012-12-06T10:25:39.060 回答