Bu yazımda IEnumarable ve IQueryable farklarını sizlere anlatmaya çalışacağım.
IEnumerable
IEnumerable aslında tüm veriyi alıp bellekte tutarak, sorgulama işlemini bellek üzerinde yapar, yani sorgulama memory(bellek) üzerinde saklanan veriler üzerinden yapılır.
IEnumerable .Net Framework altında System.Collection namespace’i altında bulunmaktadır.
IEnumerablecustomerFilter1 = customerList.Where(x => x.Age > 18);
Burada önce veritabanından tüm müşteri listesi çekilerek bellekte saklanacak hale getirildi, daha sonra filtreleme yapılarak customerFilter1 a değerleri atıldı.
IQueryable
IQueryable ise sorgulama yapılırken doğrudan veritabanı üzerinden şarta göre filtreleme yaparak sorgulama işlemi yapar. Web service, database gibi genelde uzak bir veri kaynağından veri sorgulamak için kullanılır.
IQueryable .Net Framework altında System.Linq altında yer alır.
IQueryablecustomerFilter2 = customerList.Where(x => x.Age > 18);
Burada ise sorgulama, direkt veritabanı üzerinden yapılarak gelen veri customerFilter2 de tutulur.
Yazıyı oldukça kısa tutarak, basit bir şekilde ikisi arasındaki farkın mantığını anlatmaya çalıştım, umarım faydalı olmuştur.