場景:
今天發(fā)現有一個查詢很慢,根據Id對單條數據進行查詢要300ms,這個完全是不正常的。然后斷點進去看,發(fā)現,居然把里面所有的 virtual ICollection 的所有數據(這條數據大概有5個virtual ICollection 字段)都加載了。
問題:
之前,很多的文章都說, virtual ICollection<T> 就可以實現延遲加載,那么為什么這里會加載所有的數據出來。
查完一些資料后,我做了以下實驗:
準備工作:創(chuàng)建一個控制臺應用程序;通過Nuget安裝EF6,VS2015
創(chuàng)建Model,UserInfo以及DepartmentInfo ,DepartmentInfo 跟UserInfo是一對多的關系。
代碼如下:
DepartmentInfo