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

EF架構~看(kan)看(kan)下面這代碼,你還敢(gan)用它的延時(shi)加(jia)載嗎?

回到目錄

linq to entity或者linq to sql都提供了(le)非常(chang)方便(bian)的(de)(de)(de)延時加載(zai)功能,什么意思?就是說在建立(li)對象時,它會將數據庫(ku)中的(de)(de)(de)表(biao)(biao)關系(xi)同時建立(li)進來,然(ran)后在查(cha)詢時,如果(guo)用到(dao)的(de)(de)(de)外鍵(jian)(jian)表(biao)(biao)的(de)(de)(de)數據,才會建立(li)這個外鍵(jian)(jian)表(biao)(biao)的(de)(de)(de)查(cha)詢,這一(yi)點確實很“酷(ku)”,但是它是有代價(jia)的(de)(de)(de),甚至代價(jia)是巨大的(de)(de)(de)。

我一直不太喜歡我命(ming)運被別人去掌握著,寫代碼(ma)也一樣,說著很好聽(ting)的“延時加載”,用著也算方便,但對于(yu)它生(sheng)成的SQL代碼(ma)卻是讓我很恐懼的,下(xia)面看一下(xia)截圖:

這是(shi)一個(ge)查出10條結果(guo)的語句

這只是(shi)一部分,它對(dui)于(yu)建立SQL的(de)connection是(shi)10次,傻(sha)眼了吧,呵呵,這絕對(dui)是(shi)不能接(jie)受的(de),但如果你不用(yong)外鍵表,它是(shi)很(hen)正常(chang)的(de),一個SQL鏈接(jie)就(jiu)搞定了,當(dang)然這是(shi)正常(chang)的(de)。

其時(shi),EF把復(fu)雜查詢(xun)進行(xing)了封裝(zhuang),在它(ta)看來叫“延時(shi)加(jia)載”,對我來說就(jiu)是關系(xi)表(biao)的(de)復(fu)雜查詢(xun),有(you)時(shi)我們應該把它(ta)提(ti)出來,自(zi)(zi)己去寫(xie)(xie)這個LINQ語句,而不用系(xi)統(tong)所畏的(de)“延時(shi)加(jia)載”,下面是自(zi)(zi)己寫(xie)(xie)的(de)LINQ語句的(de)結果:

恩,自己寫的查詢結果,是(shi)我們(men)可以接受的,也是(shi)我們(men)可以控(kong)制的,呵(he)呵(he)。

回到目錄

posted @ 2012-11-02 11:03  張占嶺  閱讀(3988)  評論(15)    收藏  舉報