LINQ

Language INtegrated Query (LINQ) – część technologii Microsoft .NET, której podstawy teoretyczne zostały opracowane przez Erika Meijera. Technologia LINQ umożliwia zadawanie pytań na obiektach. Składnia języka LINQ jest prosta i przypomina SQL.

Opis działania

LINQ stanowi warstwę abstrakcji nad różnymi źródłami danych. Baza danych i jej elementy traktowane są również jak obiekty. Przestrzenie, które obsługuje LINQ, to:

  1. obiekty implementujące interfejs IEnumerable<T>
  2. bazy danych
  3. język XML

LINQ posiada pełne wsparcie dla transakcji, widoków oraz procedur składowanych. Zapytania stają się częścią języka .NET wspierającego .NET 3.5 (C#, Visual Basic, Delphi Prism itd.). Jeśli LINQ ma działać, musi znać mapę całej bazy danych. Zapytanie LINQ zwraca kolekcję z przestrzeni nazw typów ogólnych. Kolekcja ta może być modyfikowana, a następnie zwrócona do źródła. Dzięki temu zachowywana jest pełna kontrola typów danych i ich konwersji w poszczególnych mechanizmach pośredniczących w pobieraniu danych.

Standardowe operatory zapytań LINQ

Przykład zapytania LINQ poza bazami danych

Przykład wybrania w zapytaniu wszystkich obiektów z właściwością SomeProperty mniejszą niż 10

int someValue = 5; 
var results =  from c in someCollection
               let x = someValue * 2
               where c.SomeProperty < x
               select new {c.SomeProperty, c.OtherProperty};

foreach (var result in results)
{
        Console.WriteLine(result);
}

Ostatecznie kompilator wygeneruje klasę:

IEnumerable<SomeOtherClass> results =
     someCollection.Where
     (
          c => c.SomeProperty < (someValue * 2)
     )
     .Select
     (
          c => new {c.SomeProperty, c.OtherProperty}
     );
foreach (SomeOtherClass result in results)
{
     Console.WriteLine(result.ToString());
}

Zobacz też

Linki zewnętrzne