我在实体框架的 where 子句中使用日期并收到以下错误:
这是由于以下代码:
var entity = dbContext.MyTable
.Where(w => w.PId = 3 && w.CreatedOn.Date == mydate.Date)
.First();
如果我使用将数据转换为列表.ToList()
,然后与日期进行比较,它会正常工作,但如果我这样做,那么它会首先将数据提取到代码中,然后将其过滤掉。请帮我解决这个问题。目前我正在使用存储过程来解决该问题,但确实希望它能够工作。
您可以使用DbFunctions.TruncateTime https://msdn.microsoft.com/en-us/library/system.data.entity.dbfunctions.truncatetime(v=vs.113).aspx#M:System.Data.Entity.DbFunctions.TruncateTime(System.Nullable%7BSystem.DateTime%7D)像这样的规范函数
var entity = dbContext.MyTable
.Where(w => w.PId == 3 && DbFunctions.TruncateTime(w.CreatedOn) == mydate.Date)
.First();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)