Co je to jazykový integrovaný dotaz?
Language Integrated Query (LINQ) poskytuje schopnost hladce integrovat deklarativní syntaxi dotazu do imperativních jazyků, především C# a VB.NET. Vývoj LINQ vyřešil problémy vývojáři pracující v objektově orientovaných prostředích, se kterými se setkala při provádění dotazů. Byl zaveden jako součást Microsoft® .NET Framework verze 3.5 v listopadu 2007 a v Codename Visual Studio® „Orcas“. Vývojáři psaní v těchto jazycích museli vložit SQL nebo XQuery jako řetězce a ručně mapovat výsledná data do objektů .NET. Vložené řetězce a mapování dotazů nemohly být ověřeny kompilátory .NET, což umožnilo objevit potenciální chyby za běhu.Jects. Vývojář by obvykle iteroval po celé sbírce zdrojů a vytvořil nové kolekce výsledků založené na kritériích vyhledávání. Vývojář mohl také transformovat data při vytváření kolekcí výsledků. Tento přístup byl těžkopádný; Jednoduchý výběrový dotaz napsaný v C# nebo VB by vyžadoval nejméně pět řádků kódu, zatímco stejný dotaz by vyžadoval jeden řádek kódu v jazyce dotazu.
Výzvy dotazování v objektově orientovaném prostředí poskytly Microsoftovi impuls k vytvoření LINQ. LINQ poskytuje syntaxi dotazu připomínající SQL, která má být použita in-line s C# nebo VB, kompletní s kontrolou statického typu. Při dotazování .NET sbírky mohou vývojáři místo použití vnořených smyček použít Syntaxe LINQ k výběru položek a transformaci dat. Mezi jiné výhody to vede k méně řádkům kódu ve srovnání s čistě objektově orientovanou syntaxí.
Při přístupu k externímu dZdroje ATA, LINQ a podpůrné komponenty odstraňují potřebu vložených jazyků dotazů a mapování dat v samotném jazyce .NET. Za účelem provedení mapování dat závisí LINQ na komponentách zvaných poskytovatelé LINQ. LINQ-to-Objects je poskytovatel akcií, který umožňuje LINQ k přístupu ke sbírkám .NET. Podobně existují poskytovatelé pro přístup k relačním databázím a dokumentům XML. Většina z těchto poskytovatelů jsou komponenty třetích stran, které nejsou zahrnuty do rámce .NET. Bez ohledu na použité poskytovatele používají všechny dotazy stejnou syntaxi LINQ.
Mezi syntaxí jazykového integrovaného dotazu a poskytovateli je knihovna operátorů dotazů přidaných do rámce .NET jako součást zařízení LINQ. Tito operátoři provádějí takové úkoly, jako je filtrování, objednávání, nastavení teoretických operací a agregace. Protože tito operátoři jsou součástí rámce .NET, lze je také použít bez LINQ, pokud si vývojář tak vybere.