可以轻松选择每组中的第一组:
var firstOfEachGroup = dbContext.Measurements .OrderByDescending(m => m.MeasurementId) .GroupBy(m => new { m.someColumn }) .Where(g => g.Count() > 1) .Select(g => g.First());
但…
问题:如何从第一个项目以外的每个组中选择所有项目?
var everythingButFirstOfEachGroup = dbContext.Measurements .OrderByDescending(m => m.MeasurementId) .GroupBy(m => new { m.someColumn }) .Where(g => g.Count() > 1) .Select( ...? );
附加信息:
我的真正目标是删除除最后一个之外的所有重复项(以批量方式,即:不使用内存中的foreach),因此在上一个查询之后我想使用RemoveRange:
dbContext.Measurements.RemoveRange(everythingButFirstOfEachGroup);
所以,如果我的问题毫无意义,这些信息可能会很方便.