四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

ASP.NET MVC & EF 構建智能查詢 一、智能查詢的需求與設計

  關于復用

  在我們日常的開發(fā)過程中,代碼的復用其實是很重要的一部分,ASP.NET MVC框架本身為我們提供了很多很好的復用機制,讓我們能充分地利用它們來節(jié)省我們的Coding成本。

  在簡單的Coding中,我們可以通過構造方法來實現(xiàn)代碼段的復用,在OOP編程中我們可以使用繼承多態(tài)來進行類的復用,我們也可以使用設計模式來做類或對象間的代碼設計的復用,隨著程序的復雜我們就想構造出更佳的復用方式,可以向更高層次上抽象。

  應用場景與目標

  在信息管理系統(tǒng)中我們會開發(fā)大量的List頁面,它們功能上通常是非常相似的,一般是包含一個查詢條件組和一個列表。

  例如下圖所示:

image  那我的目標呢,就是對這里面的查詢功能進行封裝,以達到“只要更改頁面上的條件,就可以實現(xiàn)自動的查詢邏輯”這樣的功能,即:如果我們要加一個查詢條件則不需要修改邏輯代碼只修改頁面即可。

  其實對于一個有經驗的開發(fā)人員呢,根據(jù)HTML頁面的查詢條件去自動生成查詢結果并不是難事。最簡單的是將查詢提交表單遍歷,然后連接成一個SQL進行查詢。

  但是使用SQL有很多問題:

  1. 注入問題,因為不知道類型,所以很多地方都要拼寫引號就算是使用Parameter,也無法處理類型轉換的問題
  2. 無法處理Or和And共存的問題
  3. 無法處理其它查詢條件如大于小于Like

  那我們想一下我們使用EF的話是如何正常去編寫一個查詢的呢,我們通常是在邏輯中去拼SQL或是寫如下的EF:

var query = db.User.AsQueryable();
if (string.IsNullOrEmpty(name))
query
= query.Where(c => c.Name == name);
if (id.HasValue)
query
= query.Where(c => c.Id == id);
if (string.IsNullOrEmpty(email))
query
= query.Where(c => c.Email == email);
return query.ToList();

NET技術ASP.NET MVC & EF 構建智能查詢 一、智能查詢的需求與設計,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 回响电视剧在线观看| 巨齿鲨2:深渊 电影| 白事专用歌曲100首| 日本电车系列| bobby charlton| 无懈可击图片| 色戒 在线看| 我被最想拥抱的男生威胁了| 《承欢记》电视剧| 神出鬼没电影| 扭扭棒卡皮巴拉教程| 马丁弗瑞曼| 卢昱晓主演的电视剧| 东成西就| 纵横四海国语免费观看| 米娅华希科沃斯卡| 辰巳ゆい| 惊天十二小时| 真实游戏在线观看免费完整版| 经典常谈周易第二读书笔记 | 情人看刀| 军官与男孩| 传说的打火机在线观看| 韩国 爱人| 啵乐乐| 爆操在线观看| 墨雨云间电视剧免费播放| 浙江卫视回放观看入口 | 第一序列第二季上映了吗| 保镖电影在线完整观看| 拳霸3 2010 托尼·贾| marcia| 秀人网小逗逗集免费观看| 超薄轻舞玉女女裤广场舞| 男同性恋免费视频| 西野翔三级全部电影| 让子弹飞高清完整版免费观看| 追龙演员表全部名单| douyin.com| 凌晨晚餐| 沦陷1937免费观看24集电视连续剧|