如何在Candidates控制器中按LastName排序索引页候选人列表
实现Candidates索引页按LastName排序的方法
直接在EF Core查询链式调用中追加OrderBy排序规则即可,排序会在数据库侧执行,没有额外内存性能损耗,修改后的完整代码如下:
// GET: Candidates public async Task<IActionResult> Index() { var applicationDbContext = _context.Candidate .Include(c => c.Job) .OrderBy(c => c.LastName); // 按LastName字段升序(A-Z)排列 return View(await applicationDbContext.ToListAsync()); }
补充说明:
- 如果需要按LastName倒序(Z-A)排列,把
OrderBy替换为OrderByDescending即可:.OrderByDescending(c => c.LastName) - 注意一定要在
ToListAsync()之前调用排序方法,如果你先调用ToListAsync()把数据拉到内存再排序,就会变成全表加载到内存后排序,数据量大的时候会有明显性能问题。 - 如果后续要做多字段排序(比如LastName相同的时候按FirstName排),可以在
OrderBy后追加ThenBy/ThenByDescending即可。
内容的提问来源于stack exchange,提问作者Manni
相关产品推荐
相关产品推荐

