Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LINQ 2实体查询不工作,但为什么?_Linq_Entity Framework_Datetime_Linq To Entities - Fatal编程技术网

LINQ 2实体查询不工作,但为什么?

LINQ 2实体查询不工作,但为什么?,linq,entity-framework,datetime,linq-to-entities,Linq,Entity Framework,Datetime,Linq To Entities,所有人!)) 这是代码 var existingEntities = (from record in globalOne.serviceContext.records_out where record.timestamp.Date == DateTime.Now.Date select record ).ToList(); 它不起作用 另一个代码: var existingEntities = (f

所有人!)) 这是代码

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)
但是为什么呢?我不知道。“时间戳”字段是MS SQL SERVER中的日期时间字段。 和-表中没有记录

我差点忘了——这是什么意思——“不起作用”。 应用程序将不会在该查询(第一次)之后到达断点,不会出现任何错误,也不会出现任何问题


谢谢。

您可以调用
record.timestamp.Date
,因为EF无法将其转换为所需的表达式树(然后将其转换为sql命令)。事实上,EF支持有限数量的函数和属性,但对于DateTime,EF有一些好的特性。您可以在您的案例中使用它们,例如,您可以使用Day()、Month()、Year()函数来解决您的问题(请参见链接)。

当您在调试器中单击“break”时会发生什么?它在做什么?应用程序在第一次查询后永远不会到达断点。@单色,我不能确切地说为什么,应该看到day的实现,但我猜它是一个没有复杂规则的简单属性,并且可以转换,正如我提到的EF支持少量简单属性。