[efcore] 2023/1/19 15:20:05
在efcore3.0没法直接使用context.Model.GroupBy后查询第一条数据,可以这样操作:
var set = dbCtx.Set<Model>().AsNoTracking();
var sorted = set.OrderByDescending(x => x.Key);
var latestLogs = set.Select(x => x.DisKey)
.Distinct()
.SelectMany(x => sorted.Where(y => y.DisKey == x).Take(1));
在efcore6中已经支持GroupBy后再查询某条记录:参考链接
var people = context.People
.Include(e => e.Shoes)
.GroupBy(e => e.FirstName)
.Select(
g => g.OrderBy(e => e.FirstName)
.ThenBy(e => e.LastName)
.FirstOrDefault())
.ToList();