Entity Framework Core OrderBy后调用Distinct排序失效问题咨询
问题原因
你当前的查询顺序存在逻辑问题:Distinct 操作在多数数据库实现中不会保留之前的排序结果,EF 生成的 SQL 会将 OrderBy 放在 Distinct 之前执行,去重过程会打乱原有排序,最终导致排序不生效。
解决方案
调整操作顺序,先做列投影,再去重,最后对去重后的结果排序即可。
修正后的代码如下:
return context.TableName .Select(p => p.ColumnName) .Distinct() .OrderBy(col => col) .ToList();
说明
调整顺序后生成的 SQL 会按 SELECT 单列 → DISTINCT 去重 → ORDER BY 排序 的逻辑执行,去重操作不会影响后续排序的效果,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者maxba
相关产品推荐
相关产品推荐

