中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

LINQ-to-SQL那點事~耳目一新(xin)的partial class 和 partial method

回到目錄

當你(ni)打開擴(kuo)展名為dbml的LINQ-to-SQL的文件后(hou),你(ni)將會看(kan)到(dao)很多用partial修(xiu)飾符來修(xiu)飾的方法,類(lei)等,它(ta)(ta)(ta)們是(shi)用來做(zuo)什么的呢?起初(chu)到(dao)win form時代也(ye)這個(ge)東西(xi),partial譯為“部分(fen)(fen)”,就是(shi)說它(ta)(ta)(ta)只是(shi)某(mou)個(ge)東西(xi)的一(yi)部分(fen)(fen),你(ni)可(ke)以(yi)(yi)在其它(ta)(ta)(ta)地方再(zai)去擴(kuo)展它(ta)(ta)(ta),起初(chu)微(wei)軟就認為對(dui)于一(yi)個(ge)類(lei)來說,可(ke)能(neng)不是(shi)一(yi)個(ge)人(ren)做(zuo)涉及,它(ta)(ta)(ta)可(ke)能(neng)是(shi)幾個(ge)人(ren)同時去干(gan)預它(ta)(ta)(ta),所以(yi)(yi),它(ta)(ta)(ta)提出(chu)的“分(fen)(fen)部類(lei) partial class”的概念(nian),它(ta)(ta)(ta)之后(hou)被(bei)非常好的應用到(dao)了LINQ-to-SQL中。

對(dui)于一個(ge)由生成器(qi)為(wei)(wei)我們(men)生成的(de)模型來說(shuo),LINQ-to-SQL一定(ding)不知道我們(men)以后要做(zuo)什么,它只能(neng)把最標準的(de)代碼為(wei)(wei)我們(men)生成,可能(neng)是一個(ge)表對(dui)象(xiang),一些表屬性,固定(ding)的(de)行為(wei)(wei),事件等(deng)等(deng),但與業務相關的(de)東西它無法生成,這時,它將類,方法做(zuo)成了partial,如圖:

這(zhe)使我們可以在DBML模型外(wai)部去擴展這(zhe)個User_Info類,它里面也(ye)有partial method,事實上(shang),partial method只能(neng)被(bei)實現一次,必須返回值必須是void,一般地,在DBML模型中(zhong)只是規定(ding)了固定(ding)的(de)(de)method簽名,而真(zhen)到的(de)(de)實現你可以自己在擴展的(de)(de)class中(zhong)去實現。

像(xiang)下面三個(ge)(ge)partial method是公用的,對于(yu)每個(ge)(ge)實(shi)現它(ta)們都是統一的,其中OnCreated是指當類型被new時,去執(zhi)行本方法,有時,我們確(que)實(shi)需要(yao)這樣(yang)去做

對于(yu)微軟(ruan)自(zi)己生成的(de)LINQ-to-SQL(DBML)文(wen)件,我(wo)們(men)(men)通過查看它的(de)源代碼(ma),確(que)實使我(wo)們(men)(men)耳目(mu)一(yi)新,另一(yi)方面(mian)也感(gan)覺到了(le)C#語言的(de)魅力,而我(wo)們(men)(men)當初拋棄JAVA(不思進(jin)取的(de)語言)是正確(que)的(de)選擇,呵呵!

回到目錄

posted @ 2012-08-15 23:20  張占嶺  閱讀(1526)  評論(1)    收藏  舉報