我需要从我的数据库返回一个项目列表,该列表在项目提供的日期的预定时间到期。我的错误的代码如下:
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中仅支持无参数构造函数和初始值设定项
有谁知道如何解决这个问题?
答案 0 :(得分:30)
请改用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。
答案 1 :(得分:8)
您可以使用:
var result = await db.Articles
.Where(TruncateTime(x.DateCreated) >= EntityFunctions.TruncateTime(DateTime.Now))
.ToListAsync();
答案 2 :(得分:2)
请使用:
return All().Where(o => EntityFunctions.CreateDateTime(o.expiry_date.Year, o.expiry_date.Month, o.expiry_date.Day, 17, 30, 0) >= DateTime.Now)