Entity framework 将EF CTP5与Sql Server Compact Edition 4.0一起使用时的EntityFunctions.TruncateTime替代方案
我首先在SQLCE4.0中使用EFCTP5代码。我试图在两个DateTime属性之间执行不区分时间的日期比较 由于linq to entites无法解析DateTime.Date属性(这会很好),解决方案是使用EntityFunctions.TruncateTime,但是这似乎不适用于Sql CE 4.0 我可以手动比较这两个日期的年、月和日,这很管用,但会使代码比应该的更详细。理想情况下,我不想将查询更改为使用长时间版本,以使它们同时适用于完整的sql server和sql ce 4.0 因此,有人有任何干净和聪明的解决办法吗?我认为解决方案可能需要重新编写表达式,但我不太确定从哪里开始 非常感谢您的帮助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 因此
Paul您可以选择更改数据库的结构吗 如果是这样,您可以添加一个额外的列,其中只包含datetime的日期部分,然后在查询中使用该列
它将在您的数据库中使用更多的空间,但运行速度应该会更快,因为您避免了任何转换。您好,这实际上是我在此期间所做的。就像你说的,这意味着作为数据库级别,查询实际上更好。在这种情况下,这不是一个太多的妥协。我不想养成不把实体作为纯业务对象的习惯。如果我发现需要添加其他“helper”列进行查询,那么我想我必须认真研究一个旨在减少此类不匹配的报告数据库。谢谢你的回答我很感激