日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EF延迟加载LazyLoading

發(fā)布時(shí)間:2024/10/12 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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ù)等地方寫

ContextOptions.LazyLoadingEnabled = false;

3、去掉屬性里的virtual

使用方式:兩步

第一:在需要延遲加載的屬性前加上virtual ,該屬性的類型可以是任務(wù)的集合類型ICOLLOCT<T>或者是0/1..1關(guān)聯(lián)屬性。
如:

public virtual List<Product> Products { get; set; }

第二:在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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。