Using LINQ to find / delete duplicates

后端 未结 2 1940
野趣味
野趣味 2020-12-18 05:26

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,

2条回答
  •  离开以前
    2020-12-18 05:47

    Building on @Craig Stuntz's answer with a "one liner" alternative:

    var duplicates = db.Table.GroupBy(a => new { a.FieldA, a.FieldB, ...})
                             .Where(a => a.Count() > 1)
                             .SelectMany(a => a.ToList());
    
    foreach (var d in duplicates)
    {
         db.DeleteObject(d);
    }
    
    db.SaveChanges();
    

提交回复
热议问题