0%

SqlSugar 动态表达式

可以方便动态表达式实现业务处理

.ToExpression() 这一句很重要

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//用例 1: 连写
Expression<Func<Order, bool>> exp = Expressionable.Create<Order>() //创建表达式
.AndIF(p > 0, it => it.Id == p)
.AndIF(name != null, it => it.Name == name && it.Sex == 1)
.ToExpression();//注意 这一句 不能少

var list = db.Queryable<Order>().Where(exp).ToList();//直接用就行了不需要判段 null 和加 true

//用例 2: 分开写法
var expable = Expressionable.Create<Order>();
expable.AndIF(xx > 0, it.xx == x);
expable.AndIF(yy > 0, it.yy == y);

var exp = expable.ToExpression();//要用变量 var exp=
db.Queryable<Order>().Where(exp).ToList()//直接用就行了不需要判段 null 和加 true

//用例 3:多表查询
var exp=Expressionable.Create<Order,T2,T3>()
.And((x, y, z) => z.id == 1).ToExpression();//注意 这一句 不能少

欢迎关注我的其它发布渠道