EF 延遲加載和一次性加載淺談

    在EF的模型類中,如果配置了導航屬性,那麼在通過導航屬性去獲取數據庫中的數據時,這種操作就是延遲加載,EF默認延遲加載是開啓的狀態,所以不用去配置。延遲加載的優點是可以不用把數據一次性全部取出,可以隨用隨取,但是如果連接關閉後,就在獲取不到數據。缺點是如果數據使用的比較頻繁,那麼每次通過延遲加載獲取數據都要訪問數據庫,無形之中增加了數據庫的負擔,所以要酌情使用。另外,需要注意的是,如果是在一個連接中讀取數據,不能在循環中使用延遲加載,因爲EF默認是不允許同時使用兩個DataReader,如果一定要使用,需要進行相應的配置,或者是其他的實現方式。

    一次性加載是通過“include實現”,可以將關聯表的數據一次性全部獲取,這樣如果連接關閉也不影響後續查詢操作的執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章