I have a table that contains a bunch of duplicates. These are exact duplicates, minus the primary key column, which is an integer identity column.
Using EF and LINQ,
Off the top of my head (untested):
var q = from r in Context.Table
group r by new { FieldA = r.FieldA, FieldB = r.FieldB, // ...
into g
where g.Count() > 1
select g;
foreach (var g in q)
{
var dupes = g.Skip(1).ToList();
foreach (var record in dupes)
{
Context.DeleteObject(record);
}
}
Context.SaveChanges();