排序用法
1.基础排序#
var list = db.Queryable<Student>().OrderBy("StudentId DESC").ToList();
//SELECT `StudentId`,`Name`,`SchoolId` FROM `Student` ORDER BY StudentId DESC
2.表达式排序#
var list = db.Queryable<Student, School>((st, sc) => new JoinQueryInfos(JoinType.Left, st.SchoolId == sc.SchoolId))
.OrderBy(st => st.StudentId)
.OrderBy((st, sc) => sc.SchoolId, OrderByType.Desc)
.Select<ViewModelStudent>().ToList();
//SELECT st.`StudentId` AS `StudentId`,st.`Name` AS `Name`,st.`SchoolId` AS `SchoolId`,sc.`SchoolName` AS `SchoolName` FROM `Student` st
Left JOIN `School` sc ON( `st`.`SchoolId` = `sc`.`SchoolId` )
ORDER BY `st`.`StudentId` ASC,`sc`.`SchoolId` DESC
3.表达式连写#
3.1 升序#
var list = db.Queryable<Student>().OrderBy(it => new { it.StudentId,it.SchoolId }).ToList();
//SELECT `StudentId`,`Name`,`SchoolId` FROM `Student` ORDER BY `StudentId` ASC,`SchoolId` ASC
3.2 降序#
var list = db.Queryable<Student>().OrderBy(it=>new { it.StudentId,SchoolId = SqlFunc.Desc(it.SchoolId)}).ToList();
//SELECT `StudentId`,`Name`,`SchoolId` FROM `Student` ORDER BY `StudentId`,`SchoolId` DESC
4.随机排序取10条#
var list = db.Queryable<Student().OrderBy(it=>SqlFunc.GetRandom()).Take(3).ToList();
//SELECT `StudentId`,`Name`,`SchoolId` FROM `Student` ORDER BY rand() ASC LIMIT 0,3
SqlFunc.GetRandom:随机数函数,不理解的可以用下面语句测试查看
select *,rand() as random from student order by random
5.OrderByIF#
//当条件IsOrderBy == true,OrderBy才生效
OrderByIF(IsOrderBy, it=>it.Id)
作者:DotNeter-Hpf
出处:https://www.cnblogs.com/DotNeter-Hpf/p/16619620.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
客官,点个推荐再走可好
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律