我正在調查使用EntityFramework版本5的應用程序的網絡性能低下。我嘗試的一個選項是僅檢索Id字段,而不是整個對象。但是,在Wireshark中檢查,我發現無論如何都會傳輸所有對象。換句話說,以下兩個代碼塊會導致完全相同的網絡活動。有誰知道我可以如何導致數據庫僅在第一個查詢中返回Ids?爲什麼EntityFramework只返回一列時才返回整個對象?
List<long> test = dbContext.UserActivities
.Where(ua => ua.Activity.Id == activityId)
.Select(ua => ua.User)
.ToList()
.Select(u => u.Id)
.ToList();
List<long> test = dbContext.UserActivities
.Where(ua => ua.Activity.Id == activityId)
.Select(ua => ua.User)
.ToList();
'.ToList()'物化的對象。基本上,執行查詢。之後的任何事情都是LINQ to Objects。 – James