Person
Name City
Joe Houston
Jerry London
Alex Houston
Jerry London
How to return duplicate row using LINQ like
Sql
SELECT name, city, count(*)
FROM collection
GROUP BY name,city
HAVING count(*) > 1
I tried something
var qry =
from m in context.Collections
group m by new { m.city, m.name } into grp
开发者_开发技巧 select new { rp = grp.Count() > 2 };
You need a where, not a select:
var qry = from m in context.Collections
group m by new { m.city, m.name } into grp
where grp.Count() > 1
select grp.Key;
Building on @Jon Skeet's answer with a "one liner" alternative that returns the duplicate values, not just the keys:
var duplicates = db.Collections.GroupBy(m => new { m.city, m.name })
.Where(a => a.Count() > 1)
.SelectMany(a => a.ToList());
精彩评论