大家好! )) 这是代码。
var existingEntities = (from record in globalOne.serviceContext.records_out
where record.timestamp.Date == DateTime.Now.Date
select record ).ToList();
它不起作用。
另一个代码:
var existingEntities = (from record in globalOne.serviceContext.records_out
where record.timestamp.Day == DateTime.Now.Day
select record ).ToList();
确实有效。
所以,下一个字符串中的问题ID:
where record.timestamp.**Date** == DateTime.Now.Date
也不会做
where record.timestamp.Date.Equals(DateTime.Now.Date)
但为什么呢?我没有线索。 “Timestamp”字段是MS SQL SERVER中的dateTime字段。 并且 - 表中有 NO 记录。
我差点忘了 - 这是什么意思 - “不起作用”。 应用程序只是在查询之后才会到达断点(第一个),没有任何错误,没有任何错误。
感谢。
答案 0 :(得分:2)
您可以调用record.timestamp.Date
,因为EF无法将其转换为所需的表达式树(然后将其转换为sql命令)。事实上,EF支持有限数量的函数和属性,但对于DateTime,EF有一些好的Canonical functions。您可以在您的情况下使用它们,例如,您可以使用Day(),Month(),Year()函数来解决您的问题(请参阅链接)。