Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Entity framework 将EF CTP5与Sql Server Compact Edition 4.0一起使用时的EntityFunctions.TruncateTime替代方案_Entity Framework_Datetime_Linq To Entities_Entity Framework Ctp5_Sql Server Ce 4 - Fatal编程技术网

Entity framework 将EF CTP5与Sql Server Compact Edition 4.0一起使用时的EntityFunctions.TruncateTime替代方案

Entity framework 将EF CTP5与Sql Server Compact Edition 4.0一起使用时的EntityFunctions.TruncateTime替代方案,entity-framework,datetime,linq-to-entities,entity-framework-ctp5,sql-server-ce-4,Entity Framework,Datetime,Linq To Entities,Entity Framework Ctp5,Sql Server Ce 4,我首先在SQLCE4.0中使用EFCTP5代码。我试图在两个DateTime属性之间执行不区分时间的日期比较 由于linq to entites无法解析DateTime.Date属性(这会很好),解决方案是使用EntityFunctions.TruncateTime,但是这似乎不适用于Sql CE 4.0 我可以手动比较这两个日期的年、月和日,这很管用,但会使代码比应该的更详细。理想情况下,我不想将查询更改为使用长时间版本,以使它们同时适用于完整的sql server和sql ce 4.0 因此

我首先在SQLCE4.0中使用EFCTP5代码。我试图在两个DateTime属性之间执行不区分时间的日期比较

由于linq to entites无法解析DateTime.Date属性(这会很好),解决方案是使用EntityFunctions.TruncateTime,但是这似乎不适用于Sql CE 4.0

我可以手动比较这两个日期的年、月和日,这很管用,但会使代码比应该的更详细。理想情况下,我不想将查询更改为使用长时间版本,以使它们同时适用于完整的sql server和sql ce 4.0

因此,有人有任何干净和聪明的解决办法吗?我认为解决方案可能需要重新编写表达式,但我不太确定从哪里开始

非常感谢您的帮助


Paul

您可以选择更改数据库的结构吗

如果是这样,您可以添加一个额外的列,其中只包含datetime的日期部分,然后在查询中使用该列


它将在您的数据库中使用更多的空间,但运行速度应该会更快,因为您避免了任何转换。

您好,这实际上是我在此期间所做的。就像你说的,这意味着作为数据库级别,查询实际上更好。在这种情况下,这不是一个太多的妥协。我不想养成不把实体作为纯业务对象的习惯。如果我发现需要添加其他“helper”列进行查询,那么我想我必须认真研究一个旨在减少此类不匹配的报告数据库。谢谢你的回答我很感激