3
我有兩個對象具有彼此之間的多對多關係。實體框架中的延遲加載項目
我在數據庫優先方法中使用實體框架。
我的數據庫分析器顯示每次我獲取一組對象A時,它會爲A中的每個元素加載另一組對象B.我假設在延遲加載時,這不會發生,或者B會在通過導航屬性訪問時被抓取。
訪問對象的代碼使用一個通用的方法,其中的實體是我的DbContext
public virtual IQueryable<T> GetAll()
{
IQueryable<T> query = entities.Set<T>();
return query;
}
兩個導航屬性被實現爲virtual ICollection<T>
和我有Configuration.LazyLoadingEnabled = true
在我DbContext
構造明確設置。
我錯過了什麼,或接近這個錯誤的方式嗎?我應該刪除導航屬性並通過其他查詢明確加載我需要的內容嗎?
你在看調試器中加載的'A'元素?請記住,當您用'B'集合觀看'A'元素時,您會用調試器觸發延遲加載。 – Slauma
我將'LazyLoadingEnabled'設置爲false,然後'B'集合沒有加載,所以我不知道爲什麼這是 –
它只是意味着代碼中的某些內容觸及這些導航屬性並執行延遲加載 - 就像@Slauma上面提到的甚至是調試工具都這樣做 –