Reputation: 5181
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 };
Upvotes: 3
Views: 7943
Reputation: 1107
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());
Upvotes: 1
Reputation: 1499780
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;
Upvotes: 14