Kategoria: C# Dodane przez marcin90

Jaka jest różnica pomiędzy IEnumerable vs IQueryable

1 odpowiedź

0 0 Dodane 10-06-2018 przez marcin90

Najważniejsza różnica jest taka, że IEnumerable korzysta z zasobów pamięci lokalnej aplikacji a IQueryable operuje na zasobach po stronie dostawcy a do aplikacji przekazuje przefiltrowane dane.

Dobrym przykładem jest odczyt danych z bazy danych.
Chcemy z bazy danych wyciągnąć top 5 rekordów według zadanego warunku z tabeli mającej 1 milion wierszy.

IEnumerable

W przypadku IEnumerable do aplikacji zostaną pobrane wszystkie wiersze (1 milion) a następnie nastąpi filtrowanie danych i zwrócenie top 5 wyników.

IQueryable

Korzystając z IQueryable dane zostaną przefiltrowane po stronie bazy danych i do aplikacji zwrócone zostanie top 5 wyników.

Podsumowując, IEnumerable najlepiej używać gdy operujemy na kolekcjach w pamięci lokalnej, natomiast IQueryable powinniśmy używać gdy operujemy na danych zewnętrznych (np. baza danych).


Dodaj swoją wersję odpowiedzi

Dodajesz odpowiedź jako gość. Zaloguj się się by uzyskać dostęp do rankingu oraz powiadomień.