简单动态
与EF区别 sqlsugar queryable是引用类型,我们需用queryable.clone()解决一些问题
案例1: WhereIF函数
根据条件判段是否执行过滤,我们可以用WhereIf来实现,true执行过滤,false则不执行
var
list = db.Queryable<Student>()
.WhereIF(!``string``.IsNullOrEmpty(a),it => it.Name == a)
.WhereIF(!``string``.IsNullOrEmpty(b), it => it.Name == b).ToList();
案例2.:MergeTable 函数 4.4**
是将多表查询的结果Select里的内容变成一张表, 如果是多表查询的时候,我们无论是使用 where 还是 orderBy 都需要加别名,这样我们就不能实现动态排序,因为我不知道别名叫什么, 可以用MergeTable解决这个问题
以前
现在
案例3: SqlQueryable 4.5.2.5
可以方便的把SQL变成表来操作
案例4: 将表单组装成 List<ConditionalModel>实现查询 4.5.9
案例5: 拼接拉姆达 4.5.9.8
复杂动态
Queryable是支持字符串与拉姆达混用或者纯字符串拼接模式,可以满足复杂的一些需求
例子1:
例子2:
例子3:
安全拼SQL
使用参数化过滤
字段是无法用参数化实现的,我们就可以采用这种方式过滤