Sqlsugar语句当查询条件为空时默认查询全部数据,不为空是则按照条件进行查询

4 篇文章 0 订阅
需求描识:当我们查询时,要根据前端传的参数字段是否为空来查询,字段为空则返回全部,不为空则只返回匹配的参数

sqlsugar官方文档写的挺详细的了,也可以去看看,下面我也只是加了一些注释方便理解
直接上代码,下面我们定义了一个查询构造器,OrIF的意思也就是表面意思,if如果为真则加上or语句,第一个参数则是判断字段是否为空,为空则返回false,后面的查询语句也就不生效。

 var exp = Expressionable.Create<Tags>();    //查询构造器
exp.OrIF(id.HasValue, it => it.Id == id);           //id为空时则不需要判断,返回全部数据
exp.AndIF(!string.IsNullOrWhiteSpace(tagname), it => it.TagName.Contains(tagname!));   //tagname为空时则不需要后面的判断
 tags = await DbScoped.SugarScope.Queryable<Tags>().Where(exp.ToExpression()).ToListAsync();

我们也可以这样写

  var tags = await DbScoped.SugarScope.Queryable<Tags>().Where(
                Expressionable.Create<Tags>().
                OrIF(id.HasValue, it => it.Id == id)
                .AndIF(!string.IsNullOrWhiteSpace(tagname), it => it.TagName.Contains(tagname!))
                .ToExpression()
                ).ToListAsync();
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值