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

时间:2011-02-21 00:19:44

标签: entity-framework datetime linq-to-entities entity-framework-ctp5 sql-server-ce-4

我正在使用EF CTP5代码优先使用Sql CE 4.0。我试图在两个DateTime属性之间执行时间不敏感的日期比较。

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

我可以手动比较两个日期的年,月和日,这可行但是使代码比它应该更详细。理想情况下,我不想更改我的查询以使用长版本使它们与完整的sql server和sql ce 4.0一起使用。

因此,有没有人有任何干净,聪明的解决方案呢?我认为解决方案可能涉及表达式重写,但我不太清楚从哪里开始。

非常感谢任何帮助,

1 个答案:

答案 0 :(得分:2)

您是否可以选择更改数据库的结构?

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

它将在您的数据库中使用更多空间,但由于您避免任何转换,因此应该运行得更快。