国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

實戰 .Net 數據訪問層 - 6

2024-07-10 13:03:23
字體:
來源:轉載
供稿:網友
  • 網站運營seo文章大全
  • 提供全面的站長運營經驗及seo技術!
  • 回到最初的代碼1,作者通過daf的不同調用總共得到了5種不同的data entity對象:datatable,dataset,mycustomer,ilist,dbdatareader,奇怪的是,只有第三次調用才返回真正的data entity對象:mycustomer,這不是和上面所說的data entity façade自相矛盾嗎?

    且慢,下面的代碼或許能夠說明一些問題:




    代碼5:def如何表現不同數據類型?

    // defbase:提供大部分應用程序所需的基本data entity支持,

    // 包括collection,ado.net

    [serializable()]

    public abstract class defbase : ilist, idictionary

    {

    public static implicit operator dataset(defbase def)

    {

    return def._dst;

    }

    public static implicit operator datatable(defbase def)

    {

    return def._tbl;

    }

    public static implicit operator dbdatareader(defbase def)

    {

    return def._rdr;

    }

    ...

    }


















































    上面的defbase說明了四個問題:



    (1) 對于繼承接口有一定難度的數據類型,如:datatable,dataset,dbdatareader,統統采用implicit operator進行內部數據類型轉換,轉換后的結果即為data entity的實際數據類型,這樣調用比較方便,也容易擴展(例如:本來需要返回datatable,今后可能改為dbdatareader或其它數據類型,此時,data entity / data access的接口都無須改動,調用者也只是改用其它implicit operator進行訪問即可得到想要的數據);

    (2) 對于繼承接口非常方便的數據類型,如:ilist,直接繼承接口并實現之(上述的dbdatareader也可以通過繼承idatareader實現,但就目前的ado.net 2.0而言,由于實現idatareader的類幾乎全部從dbdatareader繼承,所以,直接使用implicit operator更為實用)!

    (3) 無論上面那種類型,data entity內部都會維護一個指向實際數據成員的對象,該對象反映了數據的真實面目;

    (4) 對于只需要暴露基本對象字段的single object,直接使用data entity本身(mycustomer)即可,這種情況,就與我們在o/r mapping中調用data entity時一模一樣了!



    對于defbase不能解決的問題,就需要具體的應用程序去處理了。例如:考慮到generic因素,defbase暫不支持xml數據存儲,開發人員就可以在自己的應用程序中建立customized data entity facade,使其支持xml,然后,具體的data entity class就可以直接從customized data entity façade繼承(當然,如果data entity class無須支持xml,也可從defbase繼承)并使用其xml支持功能!

    上面代碼3中的mydef / mycustomer就是為了這個目的而構建出來,既使用了framework的功能,又可以在此基礎上進行擴充。



    下一段:http://www.csdn.net/develop/read_article.asp?id=27549
    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 花莲县| 磴口县| 宁陕县| 恩施市| 大埔区| 肇源县| 宜兴市| 敦化市| 井冈山市| 金坛市| 承德市| 永善县| 黄龙县| 四子王旗| 光泽县| 泰安市| 雷波县| 康马县| 类乌齐县| 宽城| 多伦县| 闽清县| 连平县| 蚌埠市| 多伦县| 三台县| 元氏县| 光泽县| 肇东市| 柳州市| 安宁市| 安乡县| 小金县| 保靖县| 商城县| 金溪县| 理塘县| 双桥区| 青川县| 建始县| 鄂伦春自治旗|