[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();