union 分页 /group/join 复杂查询 (.net core/framework)
union 分页/group/join 复杂查询(.net core/framework)
unoin 是一个比较特殊的查询,对 union 进行分页,关联,分组需要在最外面包装一层,如果对 union 结果再进行其它关联,分组,复杂度直线上升,解决此问题
安装 nuget 包:CRL
using CRL;
以下为默认数据源实现
如果使用 ef core 和 ado.net 见:Data/EFTest · hubroxxl/CRL - 码云 - 开源中国 (gitee.com)
定义数据源
复制代码
定义对象管理器
复制代码
通过 GetLambdaQuery 方法创建 ILambdaQuery
ILambdaQuery 能实现子查询和嵌套查询,只要符合 T-SQL 语义逻辑,可以使用 ILambdaQueryResultSelect 无限叠加
如:
join 后 group
join 后再 join
group 后再 join
join 一个 group 结果
join 一个 union 结果
对 union 进行 group 再 join
...
简单的 union
复制代码
生成 SQL 为
复制代码
对 union 进行分页
复制代码
生成 SQL 为
复制代码
union 后再 join
复制代码
生成 SQL 为
复制代码
union 后再 group
复制代码
生成 SQL 为
复制代码
源码示例参考
评论