一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

淺談C#中的延遲加載(1)——善用委托

  很久以前就聽過延遲加載這個東西,不過沒有理解是什么意思,現在算是了解一二了,寫點文章作為讀書筆記,把自己的想法記錄一下,希望對初學者幫助,不管是初學者或者高手如果發現文章那里寫得不好或者有更好的思路和做法記得告訴我哦^^。文章打算寫成兩三篇,這個是第一篇。

  在三層結構中我們通常會使用多一個叫做模型層的東西,這一層中最主要做的事情是把數據庫中的表 (或者其他數據源,例如xml或者自己定義的一種數據格式)轉成對應的類,例如有一個文章表,這時候在這一層就會有一個文章類;文章類的屬性對應著文章表的列,例如文章標題屬性對應文章標題列。 實體類和數據表一一對應是最簡單的情況,這時候實體類和實體類是各自獨立存在的,沒有出現相互引用的關系。 但是,幾乎每一個數據庫中的表都是存在關聯關系的(關系型數據庫),例如除了文章表之外,還會有一個文章分類表,假如說每一篇文章都必須屬于一個分類,那么在數據庫中表現出來的就是文章表中有一個外鍵字段指向文章分類表的主鍵 ,在C#代碼中表示出來的是文章類中有一個屬性(文章分類ID),通過這個屬性我們就可以知道文章所屬的分類、并且可以準確地通過代碼查詢數據庫,獲取一個文章分類實體類的對象,讀取到文章所屬分類的相關信息。

  以上的過程看起來一點問題都沒有,整理一下思路,就是讀取數據庫,獲取一個文章類對象,通過文字類對象中的文章分類ID的值,以這個值為查詢條件去數據庫中讀取數據,獲取一個文章分類對象,當然對數據庫的操作我們通常 是封裝在數據訪問層中。然而從面向對象的角度考慮,我們會希望從文章類包含有文章分類的信息,用代碼表示文章分類和文章兩個實體類如下:

從上面的代碼可以看到,在文章實體類中出現了一個Model.ArticleCategory類型的屬性Category,我們想要的就是通過這個屬性直接讀取文章所屬分類的詳細信息。問題出現了,在數據庫訪問層中我們從數據庫中讀取數據去實例化一個文章實體類對象之后, 要選擇在什么時候去給Category賦值

  • 選擇一:立刻給通過分類ID(CategoryID屬性)去獲取所屬文章分類的對象,然后塞給文章所屬分類屬性(Category) ,然后再返回文章對象。這種方法在有一點不好,就是萬一得到文章對象之后根本不用去使用到Category屬性顯然這種做法不佳。
  • 選擇二:在需要的時候再去讀取文章分類,然后給文章類對象的Category屬性賦值,但這和沒有這個屬性其實也沒有什么區別。
  • 選擇三:在Category屬性的get訪問器中實現讀取數據庫獲取文章分類的代碼,這樣如果沒有使用到Category屬性的 時候是不會調用到這些代碼的,也就不會去訪問數據庫拿東西了,為了避免每次訪問Category屬性都去讀取數據庫, 我們給他增加一個所有字段,得到的代碼如下:
    c#代碼

    protected Model.ArticleCategory _category;
    public Model.ArticleCategory Category
    {
    get
    {
    if(_category == null)
    {
    // 創建文章分類數據訪問層對象
    Dal.ArticleCategory articleCategoryDal = new Dal.ArticleCategory();
    // 獲取文章分類
    _category = articleCategoryDal.GetArticleCategoryByCategoryID(CategoryID);
    }
    return _category;
    }
    // set訪問器就不需要了
    }

    NET技術淺談C#中的延遲加載(1)——善用委托,轉載需保留來源!

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

主站蜘蛛池模板: 亚洲综合一二三区 | 日本高清一区二区三区不卡免费 | 国产一区二区三区免费 | 精品日韩一区二区三区 | 久久大香线蕉综合爱 | 日本高清在线观看视频www | 免费国产精品视频 | 欧美人禽交视频免费观看 | 看免费人成va视频全 | 51短视频版在线观看www免费 | 国产成人综合在线观看网站 | 国产成人精品高清在线观看99 | 久996视频精品免费观看 | 色多多入口| 爱搞逼综合 | 伊人久久中文大香线蕉综合 | 伊人久久国产 | 精品亚洲成a人在线观看 | 日本精品久久久久中文字幕 1 | 色婷婷综合久久久中文字幕 | 91精品国产综合久久久久 | 99视频精品全部免费观看 | 日韩亚洲天堂 | 欧美 亚洲 丝袜 清纯 中文 | 日本一本在线视频 | 婷婷影音 | 国产亚洲玖玖玖在线观看 | 精品久久一 | 亚洲国产成人欧美激情 | 国产九区| 国产在线观看福利 | 伊人久久大香线蕉综合高清 | 五月婷婷六月丁香在线 | 亚洲第一视频网站 | 四虎精品永久在线 | 美女网站黄免费 | 怡红院精品视频 | 男女一级毛片免费播放 | 国产亚洲一区二区三区在线 | 中文字幕一区二区三区乱码 | 亚洲欧洲视频在线观看 |