实体框架6
我有人员实体
ID
FirstName
LastName
我需要制作一份报告,其中列出了所有具有相同名字和姓氏的人。分组给我起了名字,但不是所有的ID。
所以我需要所有重复的完整人物实体:
117 John Smith
247 John Smith
是否可以获得重复的查询?
答案 0 :(得分:2)
如果您执行此类操作(假设pers
是使用EF从DB获取的人员列表):
var x = pers.GroupBy(p => p.FirstName + p.LastName).Where(g => g.Count() > 1).Select(g => g.ToList());
您将获得IEnumerable<List<Person>>
,其中每个List都具有每个Person的所有属性(我假设Person类具有相应的属性)。
例如,您现在可以:
foreach(var y in x)
{
foreach(var z in y)
{
Console.WriteLine(string.Format("{0}: {1} {2}", z.ID, z.FirstName, z.LastName));
}
}
干杯
答案 1 :(得分:0)
GroupBy
会这样做。诀窍就是你如何从小组中选择。
var dupes = people.GroupBy(e => new { e.FirstName, e.LastName })
.Where(e => e.Count() > 1)
.Select(e => new
{
e.Key.FirstName,
e.Key.LastName,
Entities = e.ToList()
});