共計 973 個字符,預計需要花費 3 分鐘才能閱讀完成。
這篇文章主要介紹“動態 linq 查詢的實現方式是什么”,在日常操作中,相信很多人在動態 linq 查詢的實現方式是什么問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”動態 linq 查詢的實現方式是什么”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
需求
配合 EasyUI datagird filter 實現多字段 (任意字段) 的篩選
根據業務需求篩選特定的狀態或條件, 如: 查看結案的訂單, 最近 30 天的訂單, 查看屬于我的訂單. 等等, 這些邏輯是固定也是可以被重用, 但又不想每次寫相同的條件, 那么下面我會給我的解決方案.
需求 1 只是一個偷懶的實現方式, 因為 datagrid 自帶這個功能, 但又不想根據具體的需求來畫查詢條件, 如果需求必須要再 datagrid 上面做一塊查詢條件的輸入那目前只能在前端自己手工添加, 在組織后傳入后臺, 暫時不在這里討論
需求 2 可能不太好解釋, 看完代碼就自然理解為什么要這么做了, 這么做的好處有哪些
具體實現的方式
默認情況下 datagrid 有幾列就可以對這幾列進行篩選, 對于日期型的字段會采用 between, 選擇 2 個時間之間進行篩選, 數字類型會提供大于小于等符號選擇, 可以自行嘗試, 其原理是 datagrid 會根據 datagrid 頭部輸入的值生成一個 Json 字符串發送后臺請求數據
JSON: 格式
filterRules: [{field:field,op:op,value:value},
{field:field,op:op,value:value},
]
通常的做法是一個一個判斷加條件
View Code
新的做法是動態根據 field,op,value 生成一個 linq 表達式, 不用再做繁瑣的判斷, 這塊代碼也可以被其它項目使用, 非常好用
View Code
配合使用的代碼
對于固定查詢邏輯的封裝和復用, 當然除了復用還可以明顯的提高代碼的可讀性.
查看訂單的銷售情況, 條件 金額, 國家, 日期
調用查詢方法
客戶查詢 根據國家和城市查詢
客戶的銷售情況, 金額和數量
復用上面的定義的查詢方法
到此,關于“動態 linq 查詢的實現方式是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!