2014-02-20 13 views
0

實體框架6實體框架 - 讓所有重複的人

我有一個Person實體

ID 
FirstName 
LastName 

我需要製作具有所有具有相同人名單的報告名字姓氏。分組讓我成爲名字,但不是所有的ID。

所以我需要所有的人全實體是重複的:

117 John Smith 
247 John Smith 

是一個查詢,以獲得重複可能嗎?

回答

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>>,其中每個表都有每個人的所有屬性(假設一個Person類有相應的屬性)。

因此,例如,你現在可以做的事:

foreach(var y in x) 
{ 
    foreach(var z in y) 
    { 
     Console.WriteLine(string.Format("{0}: {1} {2}", z.ID, z.FirstName, z.LastName)); 
    } 
} 

乾杯

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() 
    });