将Sql转换为Linq - 然后从数据库中删除多个记录

时间:2014-07-08 09:12:06

标签: c# linq linq-to-sql

我有一个查询,它会从我的数据库表中删除重复的记录。

任何人都可以协助将其转换为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();

感谢任何指导,马克

0 个答案:

没有答案