EntityFramework關(guān)閉自動懶加載

懶加載(Lazy Loading)的概念在最后部分,前面就不占用篇幅了,進入正題。避免懶加載的主要原因是偏好手加載各個導(dǎo)航屬性(Navigation Property)。

在EF4中懶加載是默認關(guān)閉的,在EF6中懶加載默認開啟,用Student和Enrollment類舉例,要關(guān)閉懶加載的方法有三種:


方法一:關(guān)閉特定的外鍵屬性,將Enrollment類聲明稱public ICollection<Enrollment> Enrollment {get;set;}

方法二:關(guān)閉所有屬性的懶加載,在DbContext中聲明this.Configuration.LazyLoading = false; 如圖


什么是懶加載(Lazy Loading)?

懶加載(Lazy Loading)跟貪婪加載(Eager Loading)是兩種不同在ORM中加載數(shù)據(jù)的方式,通常用于one-to-one, one-to-many, many-to-many的情況下。拿Student和StudentDetail一對一關(guān)系的兩個類舉例,使用懶加載時,加載Student的不會同時會獲取StudentDetail表中的數(shù)據(jù),只有訪問StudentDetail的屬性的時候才會獲取StudentDetail中的數(shù)據(jù);使用貪婪加載的時候,在加載Student的時候就會加載所對應(yīng)的StudentDetail,在有多對多關(guān)系的時候要盡量避免懶加載,因為會常常伴隨不必要的數(shù)據(jù)加載,占用內(nèi)存。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、簡介 延遲加載就是我們真正使用某個對象的時候,這個對象才會被創(chuàng)建出來。而在hibernate中的意思就是只有我...
    yjaal閱讀 691評論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,626評論 18 399
  • 春光燦爛的上午,天氣已經(jīng)越來越熱,放在陽臺上曬的冬鞋要收入櫥子。蓮花想著把出門的鞋子也拿出來,可以準(zhǔn)備下,還有幾天...
    藍蓮花0閱讀 344評論 0 0
  • 寒冬即將來臨,而我們卻不在一起。身處于不同城市的兩人,只能向遠處的你給予思念與關(guān)心。或許你早已把我的名字遺忘,或許...
    陳世俗陳閱讀 351評論 0 0
  • 1.一天的情緒:心塞,煩躁,難過, 2.一天的進步:從昨晚和老公的小誤會開始,負能量就無限上升!昨天下午老公帶孩子...
    瑾_61e6閱讀 180評論 0 2

友情鏈接更多精彩內(nèi)容