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