#14 LINQ.

LINQ

LINQ (ang. Language Integrated Query) w tłumaczeniu na polski znaczy zapytania zbieżne z językiem programowania lub krócej zintegrowany język zapytań.

W dzisiejszym „informatycznym świecie” przeważająca większość aplikacji korzysta z relacyjnych baz danych, są one w zasadzie standardem a co za tym idzie obecność języka SQL. LINQ to nowe podejście do kwestii łączenia ze źródłami danych. Jego funkcjonalność jest znacznie rozszerzona i umożliwia odpytywanie obiektów, jako źródeł danych. Składnia zapytań LINQ przypomina budowanie zapytań w języku SQL ale jednocześnie uniezależnia aplikację od konkretnego źródła danych. Najważniejsze technologie LINQ to LINQ to Objects, LINQ to XML i LINQ to SQL i właśnie na tych zagadnieniach skupimy się w niniejszym kursie.

Poniżej standardowe (niektóre, najczęściej używane) operatory LINQ.

Nazwa operatora Wyjaśnienie działania operatora
Select Operator jest wykorzystywany do pobrania odpowiednich (wybranych przez nas) danych ze źródła danych.
SelectMany Obieranie danych w przypadki relacji jeden-do-wielu np. gdy obiekt który pobieramy z kolekcji posiada inną kolekcję.
Where Operator służy do określenia warunków filtrowania. Jeżeli obiekt ze źródła danych nie pasuje do zadanych reguł filtrowania nie będzie pobrany w zapytaniu.
Count Operator służy do zliczenia elementów kolekcji.
Max Operator służy do otrzymania wartości maksymalnej (np. znalezienie najstarszego pracownika w firmie).
Min Operator służy do otrzymania wartości minimalnej (np. znalezienie najmniej zarabiającego pracownika w firmie).
Sum Operator służy do otrzymania sumy wybranych wartości (np. suma pensji wszystkich pracowników w dziale).
OrderBy Operator służy do sortowania wyników zapytania według zadanego kryterium (np. sortowanie listy pracowników po nazwisku lub po wielkości pensji itp).
First Operator służy do zwrócenia pierwszego elementu kolekcji.
FirstOrDefault Operator służy do zwrócenia pierwszego elementu kolekcji bądź NULL, jeżeli kolekcja jest pusta.
Last Operator służy do zwrócenia ostatniego elementu kolekcji.
LastOrDefault Operator służy do zwrócenia ostatniego elementu kolekcji bądź NULL, jeżeli kolekcja jest pusta.
Single Operator służy do zwrócenia pojedynczego elementu kolekcji (wg zadanych kryteriów).
GroupBy Operator służy do grupowania elementów w zapytaniu.
Join Operator służy do łączenia dwóch zbiorów danych niekoniecznie o takiej samej strukturze encji.
Skip Operator służy do pomijania elementów.
All Operator służy do sprawdzenia czy wszystkie elementy kolekcji spełniają zadany warunek.
Any Operator służy do sprawdzenia czy którykolwiek element kolekcji spełnia zadany warunek.
Contains Operator służy do sprawdzenia czy w wyniku zapytania znajduje się konkretny obiekt.
Concat Operator wykorzystujemy do operacji na zbiorach. Służy do łączenia np. dwóch kolekcji (nowy zbiór zawiera wszystkie elementy jednego i drugiego zbioru; gdy w obu zbiorach istnieją takie same elementy nowy zbiór także będzie zawierał duplikaty).
Distinct Operator służy do usuwania duplikatów (zdublowanych elementów).
Except Operator wykorzystujemy do operacji na zbiorach. Służy do
Union Operator wykorzystujemy do operacji na zbiorach. Służy do łączenia np. dwóch kolekcji z wyłączeniem duplikatów.