[LINQ2Dapper]最完整Dapper To Linq框架(二)---动态化查询

目录

  • [LINQ2Dapper]最完整Dapper To Linq框架(一)---基础查询
  • [LINQ2Dapper]最完整Dapper To Linq框架(二)---动态化查询
  • [LINQ2Dapper]最完整Dapper To Linq框架(三)---实体类关系映射
  • [LINQ2Dapper]最完整Dapper To Linq框架(四)---Linq和SQL并行使用
  • [LINQ2Dapper]最完整Dapper To Linq框架(五)---查看Linq实际执行的SQL
  • [LINQ2Dapper]最完整Dapper To Linq框架(六)---多表联合与匿名类型返回
  • [LINQ2Dapper]最完整Dapper To Linq框架(七)---仓储模式
  • [LINQ2Dapper]最完整Dapper To Linq框架(八)---导航属性

 

配合js实现动态化查询

不需要写任何if来判断参数拼接SQL,简便效率

一.前端

 
 
"search" class="form-horizontal" role="form">
class="form-group col-sm-6 col-md-6">
class="col-sm-9"> class="form-control" type="text" name="name" data-operator="6" />
class="form-group col-sm-6 col-md-6">
class="col-sm-9"> class="form-control date" type="text" name="createDate" data-operator="16" data-table="users" data-type="6" />


然后使用$("#search").serializeQuery();获取动态化参数对象

serializeQuery()方法的代码实现

$.fn.serializeQuery = function() {
    var dynamicWhere = {};
    var inputArr = $(this).find("input");
    for (var i = 0; i < inputArr.length; i++) {
        var item = $(inputArr[i]);
        //生成一个唯一键 
        var key = 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g,
        function(c) {
            var r = Math.random() * 16 | 0,
            v = c == 'x' ? r: (r & 0x3 | 0x8);
            return v.toString(16);
        }); //值 var value = { Table: item.attr("data-table"),//查询的表(默认为后台设置) 
        Field: item.attr("name"),
        //字段名(必填) Operators: item.attr("data-operator"),//运算符(默认为13,Equal) 
        Value: item.val(),
        //值 ValueType: item.attr("data-type"),//值类型(默认为16,string) }; 
        dynamicWhere[key] = value;
    }
    return dynamicWhere;
}

  

更多配置符

[LINQ2Dapper]最完整Dapper To Linq框架(二)---动态化查询_第1张图片

如果是多表需要配置data-table,data-table对应表名,需要在程序启动时注册 

EntityCache.Register(typeof(T));

[LINQ2Dapper]最完整Dapper To Linq框架(二)---动态化查询_第2张图片

 

  1. 二.后端cs代码

 /// 动态化参数对象

  public JsonResult Query(Dictionary dynamicWhere = null)
        {

  using (var conn = new SqlConnection("数据库连接字符串"))
            {
                var result = conn.QuerySet().Where(dynamicWhere).ToList();
               return result ;
            }
        }

 

完整Demo可以去Github上下载:

https://github.com/a935368322/Kogel.Dapper.Test

如有问题也可以加QQ群讨论:

技术群 710217654

框架开源,可以加群下载源码

你可能感兴趣的:([LINQ2Dapper]最完整Dapper To Linq框架(二)---动态化查询)