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).
"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."
Przykład jest ok ale nie mogę się zgodzić z powyższym. Jeśli zrobimy IQueryable do lokalnie posiadanej listy to również będziemy korzystać z pamięci lokalnej.
Korzystając z serwisu akceptujesz regulamin
oraz politykę prywatności.
Używamy informacji zapisanych za pomocą plików cookies w celu zapewnienia maksymalnej wygody w korzystaniu z naszego serwisu.
Jeśli nie wyrażasz zgody, ustawienia dotyczące plików cookies możesz zmienić w swojej przeglądarce.
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).