.NET 通用多条件动态参数查询方法 - SqlSugar ORM

本文介绍了如何使用SqlSugar ORM实现通用的多条件动态查询,包括简单多条件、二级多条件和树型动态条件,适用于各种复杂的查询场景。通过枚举ConditionalType进行操作符解释,并提供了列名验证、类型转换以及多表查询去别名等功能,旨在简化.NET开发中的查询工作。
摘要由CSDN通过智能技术生成

通用查询用途

一般我们Grid控件,会有很多条件传给后台,如果每个条件都写一个逻辑的话,那么工作量将非常大,所以通用查询功能是每个软件必备的,

SqlSugar将通用查询封装到支持了树型条件,并且支持所有常用的操作,用SqlSugar或者不用SqlSugar的都可参参考一下

1、简单多条件多动参数 

创建数据库对象

 //创建数据库对象 SqlSugarClient   
 SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
 {
            ConnectionString = "Server=.xxxxx",//连接符字串
            DbType = DbType.SqlServer, //数据库类型
            IsAutoCloseConnection = true //不设成true要手动close
 });

前台传的JSON格式   [{},{},{}]

1

2

3

4

[

  { "FieldName":"id","ConditionalType":"0","FieldValue":"1"},

  { "FieldName":"name","ConditionalType":"0","FieldValue":"jack"}

]

后台代码 

1

2

3

4

5

6

7

8

9

10

//手动构造

var conModels = new List<IConditionalModel>();

conModels.Add(new ConditionalModel{ FieldName = "id",ConditionalType=ConditionalType.Equal,FieldValue="1"});

conModels.Add(new ConditionalModel{ FieldName = "name",ConditionalType=ConditionalType.Equal,FieldValue="jack"}); 

  

//5.0.5.1 Json直接序列化

var conModels= db.Context.Utilities.JsonToConditionalModels(json) 

  

var student = db.Queryable<Student>().Where(conModels).ToList();

//select * from Student where id=1 and name = 'jack'

这种比较简单 多一条记录就多一个AND

2、二级多条件动态参数

这种模式对于表格查询已经够用了,支持到2级查询,并且AND OR都比较灵活了

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

[ { "FieldName""id","FieldValue""1","ConditionalType": 10},

  { "FieldName""id","FieldValue"null,"ConditionalType": 12},

  <

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值