本文介绍了拆分实体集合为n个部分的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数据库表。
- 首先,我想按日期和时间。
- 然后我想只能选择组,n项。
我的阶级是这样的:
public class VisitDate
{
public int Id {get;set;}
public int VisitMeDate {get;set;}
.....
.....
}
我的SQL表就像如下:
My SQL table is like below:
Id Date
--- -----------------------
136 2012-05-09 10:00:00.000
167 2012-05-09 12:00:00.000
137 2012-05-10 10:00:00.000
168 2012-05-10 12:00:00.000
194 2012-05-10 14:00:00.000
138 2012-05-11 10:00:00.000
169 2012-05-11 12:00:00.000
195 2012-05-11 14:00:00.000
139 2012-05-12 10:00:00.000
170 2012-05-12 12:00:00.000
196 2012-05-12 14:00:00.000
140 2012-05-13 10:00:00.000
171 2012-05-13 12:00:00.000
197 2012-05-13 14:00:00.000
141 2012-05-14 10:00:00.000
142 2012-05-15 10:00:00.000
172 2012-05-15 12:00:00.000
143 2012-05-16 10:00:00.000
173 2012-05-16 12:00:00.000
144 2012-05-17 10:00:00.000
174 2012-05-17 12:00:00.000
198 2012-05-17 14:00:00.000
我要转换如下图所示:
I want to transform like below:
List<List<MyEntity>> = ?;
137 2012-05-10 10:00:00.000
168 2012-05-10 12:00:00.000
194 2012-05-10 14:00:00.000
138 2012-05-11 10:00:00.000
169 2012-05-11 12:00:00.000
195 2012-05-11 14:00:00.000
139 2012-05-12 10:00:00.000
170 2012-05-12 12:00:00.000
196 2012-05-12 14:00:00.000
140 2012-05-13 10:00:00.000
171 2012-05-13 12:00:00.000
197 2012-05-13 14:00:00.000
144 2012-05-17 10:00:00.000
174 2012-05-17 12:00:00.000
198 2012-05-17 14:00:00.000
我尝试这样做:
I tried this:
List<List<VisitDate>> dates = dbContext.VisitDates.GroupBy(f => new { f.VisitMeDate }).ToList();
不过,这并不编译,我不知道怎么说,我只想组,三个元素。
But it doesn't compile and I don't know how to say that I only want groups with three elements.
推荐答案
尝试是这样的:
var result = dbContext.VisitDates
.GroupBy(x => x.VisitMeDate.Date)
.Where(g => g.Count() == 3)
.Select(g => g.ToList())
.ToList();
这篇关于拆分实体集合为n个部分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!