国产探花免费观看_亚洲丰满少妇自慰呻吟_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
    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 苍溪县| 天柱县| 云梦县| 炉霍县| 剑川县| 信丰县| 灌云县| 永胜县| 盐城市| 营山县| 城口县| 桐梓县| 获嘉县| 东源县| 涪陵区| 团风县| 呼图壁县| 梧州市| 阜城县| 龙口市| 南阳市| 康平县| 尉犁县| 济南市| 兴海县| 醴陵市| 商南县| 江山市| 盐边县| 吐鲁番市| 海南省| 永德县| 襄樊市| 攀枝花市| 泸西县| 清丰县| 周口市| 南川市| 夹江县| 仁化县| 祁阳县|