EF延迟加载LazyLoading
生活随笔
收集整理的這篇文章主要介紹了
EF延迟加载LazyLoading
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
優(yōu)點(diǎn)
只在需要的時(shí)候加載數(shù)據(jù),不需要預(yù)先計(jì)劃,避免了各種復(fù)雜的外連接、索引、視圖操作帶來的低效率問題
缺陷:多次與DB交互,性能降低
阻止延遲加載解決方案:
1、ToList(),返回的東西是個(gè)內(nèi)存級(jí)的對(duì)象,就是說強(qiáng)迫它在這里執(zhí)行了一次SQL語句,查詢到的東西被放在Web服務(wù)器內(nèi)存里了,這樣可以達(dá)到緩存的效果,這就阻止了延遲加載
2、在構(gòu)造函數(shù)等地方寫
3、去掉屬性里的virtual
使用方式:兩步
第一:在需要延遲加載的屬性前加上virtual ,該屬性的類型可以是任務(wù)的集合類型ICOLLOCT<T>或者是0/1..1關(guān)聯(lián)屬性。
如:
第二:在context構(gòu)造器中開啟延遲加載功能
ContextOptions.LazyLoadingEnabled = true;現(xiàn)象
會(huì)在對(duì)象中產(chǎn)生私有字段
?
其他
貪婪加載/顯示加載http://www.cnblogs.com/wlflovenet/archive/2011/07/29/EFandMvc6.html
轉(zhuǎn)載于:https://www.cnblogs.com/Lulus/p/7877778.html
總結(jié)
以上是生活随笔為你收集整理的EF延迟加载LazyLoading的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 路程一共25千米 自行车先走了20千米
- 下一篇: 我的车是一汽丰田的卡罗拉,之前停车时不小