IEnumerable ve IQueryable arasındaki c # daki temel fark nedir?


cevap 1:

“Sayısız” ve “IQueryable” arasındaki temel fark, filtre mantığının nerede yürütüldüğü ile ilgilidir. Biri istemci tarafında (bellekte), diğeri ise veritabanında çalışır.

Örneğin, veritabanımızdaki Kullanıcı için 10000 kayıt var ve sadece aktif olan kullanıcılar olan 900 çıktısını söyleyelim, bu durumda “IEnumerable” yaklaşımı kullanırsanız, ilk önce tüm 10000 kayıtları hafızaya yükleyin, sonra IsActive filtresini uygulayın. sonuçta 900 aktif kullanıcıyı döndürür. (İki adım, tüm kayıtları işler ve hafızada olduğu gibi işlemi de yavaşlatır.) Öte yandan, aynı durumda “IQueryable” yaklaşımını kullanırsak doğrudan IsActive'i uygular. doğrudan oradan veritabanına filtre 900 aktif kullanıcıları döndürür. (Bir adım işlem ve daha hızlı olacak daha az kayıt döndürür).

Ayrıntılar için IEnumerable - IQueryable


cevap 2:

IEnumerable:

Yalnızca toplama yoluyla yineleme yapmak için uygundur ve verileri değiştiremez (Ekle veya Kaldır) IEnumerable, sunucudan istemciye TÜM verileri getirip filtreleyemez, çok sayıda kaydınız olduğunu varsayalım, böylece IEnumerable hafızanıza yükler.

IQuerable:

Ne zaman çok fazla kayda sahip çok büyük veriye rastlıyorsak, bu nedenle uygulamadaki ek yükü azaltmak zorundayız. IQueryable bu gibi durumlarda yüksek performans hazırlar (önce büyük veri) önce verileri filtreleyip ardından filtrelenmiş verileri müşteriye gönderir.

Atıf: Liste vs IEnumerable vs IQueryable vs ICollection vs IDictionary