目錄
- [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,簡便效率
一.前端
<form id="search" class="form-horizontal" role="form"> <div class="form-group col-sm-6 col-md-6"> <label title="標題" class="control-label col-sm-3"> 用戶名稱 </label> <div class="col-sm-9"> <input class="form-control" type="text" name="name" data-operator="6" /> <!--6 模糊查詢--> </div> </div> <div class="form-group col-sm-6 col-md-6"> <label title="創建時間" class="control-label col-sm-3"> 創建時間 </label> <div class="col-sm-9"> <input class="form-control date" type="text" name="createDate" data-operator="16" data-table="users" data-type="6" /> <!-- data-operator="16" 是大於等於 data-type="6" 是時間格式 --> </div> </div> <div class="form-group col-sm-6 col-md-6 operating"> <a class="btn btn-primary" href="javascript:void(0)" onclick="users.init()"> 查詢 </a> </div> </form>
然后使用$("#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; }
更多配置符
如果是多表需要配置data-table,data-table對應表名,需要在程序啟動時注冊
EntityCache.Register(typeof(T));
-
二.后端cs代碼
完整Demo可以去Github上下載:
https://github.com/a935368322/Kogel.Dapper.Test
如有問題也可以加QQ群討論:
技術群 710217654
框架開源,可以加群下載源碼