2
我讀的書Programming Entity Framework: DbContext
,我只是讀了三個數據加載類型的章節:實體框架數據加載策略比較
- 延遲加載(默認)
- 預先加載
- 明確加載
現在我問自己哪種數據加載在哪種情況下更好。具體的比較會很好!我還沒有找到。
例如,我在客戶端模塊上使用默認的延遲加載。這與銷售代表模塊處理,並暗示這些相關表:
- 衆議員
- Reps_Zones
- Reps_Prerequisites
- 用戶
- Reps_Languages
- 等
在模塊,我使用所有這些表來派遣約會(約150人約會到50人)一次代表),但速度很慢。使用不同的加載策略是否真的可以提高性能?
是的懶惰加載不是最好的解決方案在這裏。基本上你在這裏有一個'N + 1'的問題。意味着每次訪問實體時都會運行一條select語句來加載該實體。想象一下在一堆物體中循環。那裏有很多疑問。更好地加載負載,或者我猜測使用查詢構建器或linq顯式加載你需要的東西。 – Gohn67
在這裏看到關於在orm中延遲加載的N + 1問題http://stackoverflow.com/questions/97197/what-is-the-n1-selects-problem – Gohn67