Ved*_*ic. 1 .net c# linq linq-to-sql
在某些过程之后,我想从表中删除重复项并提交更改,因此只保留单个值。
我有三个移除标准:
因此,如果存在具有相同名称、相同日期和相同状态的记录......删除一个。哪一个都无所谓。
我有:dbContext.tbl_mytable
既然你在谈论删除记录,你需要先测试一下。
因此,如果存在具有相同名称、相同日期和相同状态的记录......删除一个。哪一个都无所谓。
我假设您想删除除一个之外的所有记录,即,如果您有三个具有相同详细信息的记录,则删除两个并保留一个。
如果是这样,您应该能够通过按 { Name, date, status} 分组然后选择每个组中除第一条记录之外的所有记录来识别重复项。
即类似的东西
var duplicates = (from r in dbContext.tbl_mytable
group r by new { r.Name, r.date, r.status} into results
select results.Skip(1)
).SelectMany(a=>a);
dbContext.tbl_mytable.DeleteAllOnSubmit(duplicates);
dbContext.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)