【问题标题】:DateTime Arithmetic Query Using EntityFramework使用 EntityFramework 的日期时间算术查询
【发布时间】:2012-02-27 14:24:47
【问题描述】:

我有一个包含各种列的表,包括两个 DateTime 列,StartEnd

如何在实体框架上编写 linq 查询以查找 持续时间

我正在寻找这样的结果:2y 3m 2d 6h 4m 58s

还有三个重要的限制:

  1. 我无法向 db 添加函数或 sp
  2. 我无法将新的计算列添加到表中
  3. 考虑到大量记录的内存使用情况,我无法使用像 foreach 这样的循环在内存中执行此操作。

有什么想法吗?

【问题讨论】:

  • 不清楚第三点是什么意思。之后你对查询的结果做了什么?您可以添加一个投影以在之后在进程中执行,并且仍然通过数据流式传输。
  • @JonSkeet:我无法在获取数据后使用 linq to object 计算持续时间。
  • 为什么不呢?仅将其作为事实陈述是没有帮助的 - 如果您能解释您认为不能解释的为什么,我们或许能够纠正一些误解。或者你可能真的不能,但是我们会理解你为什么不能。
  • ...根据大量记录和服务器内存使用情况。
  • @JonSkeet - 如果他想检索持续时间大于 x 的记录,那么他需要计算每条记录的持续时间

标签: c# entity-framework linq-to-entities entity-framework-4.1


【解决方案1】:

在您的Linq-to-entities 查询中,您可以使用EntityFunctionsDiffSeconds 方法来查找两个DateTime 之间的差异

【讨论】:

  • 快速提示 EF 6.0 中已弃用 EntityFunctions 并替换为 DbFunctions。
猜你喜欢
  • 2012-07-17
  • 2011-05-07
  • 1970-01-01
  • 2016-09-25
  • 2014-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多