Ostatnio zastanawiałem się nad tym czy w swojej aplikacji zwracać obiekty zapytania LINQ jako IEnumerable czy też jako IQueryable.
IEnumerable jest pierwotnym interfejsem który wykorzystujemy w LINQ. Najważniejsze w nim jest to, że tworząc do niego zapytania działamy w pamięci lokalnej aplikacji. Tak więc tworząc zapytania do bazy danych z różnymi metodami jak where, take, skip itd. najpierw cała tabela jest kopiowana do pamięci a następnie są z niej wybierane szukane elementy.
IQueryable jest to idealny sposób zwracania zapytań w przypadku odnoszenia się do bazy danych. Buduje zapytanie do bazy które zawiera już w sobie wszelkie wcześniej wymienione metody (w języku sql napisane oczywiście).
Podsumowując:
IEnumerable - operacje w pamięci
IQueryable - LINQ to SQL, Entity Framework itp.
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz