我正在使用 C#、NHibernate、Fluent NHibernate 和 LINQ(存储库模式)。
关于我想做什么的虚构故事
假设我有一个停车位,所以我有一辆车从日期租到日期。这成为数据库的一个条目。
我想知道过去 30 天内每天有多少辆车。所以可以在趋势图中使用的数据。
描述
我所拥有的是数据库中的条目,如下所示:
Entry:
--------
ID
StartDate
EndDate
each day
我需要找出一段时间内有多少条目(比如last 30 days
)。
如果我在数据库中说这些数据:
ID | Start | End
---|------------|----------
1 | 2013-01-01 | 2013-01-01
2 | 2013-01-02 | 2013-01-02
3 | 2013-01-02 | 2013-01-03 <-- NOTICE
4 | 2013-01-03 | 2013-01-03
5 | 2013-01-03 | 2013-01-05 <-- NOTICE
6 | 2013-01-04 | 2013-01-05
我有日期范围2013-01-01
直到2013-01-05
。
我除了结果:
Date | Value | Entry IDs (not part of the result, only here for clarity)
-----------|-------|-----------
2013-01-01 | 1 | 1
2013-01-02 | 2 | 2 3
2013-01-03 | 3 | 3 4 5
2013-01-04 | 2 | 5 6
2013-01-05 | 2 | 5 6
我目前只分组startdate
,然后获取数字,但现在这是无效的,因为添加了enddate
.
我可以为该范围内的每一天做一个,尝试找到与之匹配的条目,但我认为这在数据库或 Web 服务上过于昂贵。
建议?