Data flow · IQueryable và IEnumerable

ToList() đặt ở đâu quyết định bao nhiêu dòng đi qua mạng

ToList() trước và sau Where Đặt ToList() trước Where kéo cả ba triệu dòng của bảng Orders vào bộ nhớ rồi mới lọc; để Where trên IQueryable thì điều kiện được dịch sang WHERE trong SQL và chỉ vài chục dòng cần lấy đi qua mạng. DATABASE TIẾN TRÌNH .NET 3 TRIỆU DÒNG VÀI CHỤC DÒNG Bảng OrdersSELECT * Cả bảng vào RAM.ToList() Lọc trong bộ nhớ.Where(o => …) Bảng Orders_db.Orders Lọc trong databaseWHERE CustomerId = @id Chỉ dòng cần lấy.ToListAsync(ct) SAI · TOLIST() ĐẶT TRƯỚC WHERE ĐÚNG · WHERE ĐƯỢC DỊCH SANG SQL © tiennhm