IEnumarable ve IQueryable Farkları

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.

IEnumerable customerFilter1 = 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.

IQueryable customerFilter2 = 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.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir