我有一个查询,它会从我的数据库表中删除重复的记录。
任何人都可以协助将其转换为Linq:
DELETE FROM SSRecs
WHERE (SSRecId NOT IN
(SELECT MAX(SSRecId) AS Expr1
FROM SSRecs AS SSRecs_1
GROUP BY ref, DateTime))
我想我可以从此查询中获得相同的重复列表:
var duplicates = (from check in db.SSRecs
group check by new { check.ref, check.DateTime } into g
where g.Count() > 1
select g.Key).ToList();
这是我有点卡住的地方 - 我在“重复”列表中找到了重复密钥(SSRecId)的列表 - 但是如何从数据库中批量删除它们 - 这是我的伪代码:< / p>
db.SSRecs.Where(x => x.SSRecId ** is in duplicates list **)
.ToList()
.ForEach(db.SSRecs.DeleteObject);
db.SaveChanges();
感谢任何指导,马克