【发布时间】:2018-08-23 19:05:34
【问题描述】:
我的数据库中有一个快照表,其中包含预约可用性的历史数据。
我正在尝试编写一个 LINQ 查询,以获取最新快照中给定日期范围内的可用插槽总数。
这是我的桌子的样子:
因此,有了这个给定的数据,我希望我的 LINQ 查询返回 2018 年 1 月 1 日至 2018 年 1 月 2 日日期范围内的可用插槽总和以及最新的 SnapShotTime。所以,我希望查询返回 4。
这是我目前所拥有的。
var test = db.snapshots
.GroupBy(g =>
g.AppointmentTime >= startDate &&
g.AppointmentTime <= endDate
).Select(s => s.OrderByDesending(x => x.SnapShotTime).FirstOrDefault();
但是,我不确定如何将可用插槽的总和放入此 LINQ 查询中。任何有关编写此查询的帮助将不胜感激!
【问题讨论】:
-
你的
GroupBy应该是Where,然后你应该按SnapShotTime分组并取最高组的总和。尽管我认为您应该按 SnapShotTime 的分钟或秒部分分组?它们真的可以等于毫秒吗? -
“20:0101:137”代表什么?
-
@NetMage,这只是 DateTime 列中的时间戳
-
@GertArnold,我将如何按分钟分组?
-
这取决于
SnapShotTime的数据类型。它不常见的(对我来说)格式让我想知道它是否是 DateTime。
标签: c# entity-framework linq linq-to-sql