Skip to main content

Co to jest zapytanie zintegrowane językiem?

Zintegrowane zapytanie językowe (LINQ) zapewnia możliwość bezproblemowej integracji składni zapytania deklaratywnej z językami imperatywnymi, przede wszystkim C# i VB.NET.Rozwój LINQ rozwiązał problemy, które programiści pracują w środowiskach obiektowych napotkanych podczas wykonywania zapytań.Został wprowadzony jako część Microsoft .NET Framework wersja 3.5 w listopadzie 2007 r. Oraz w Visual Studio Codename Orcas.

Przed utworzeniem zintegrowanego zapytania języka języki .NET nie miały rodzimego sposobu na zapytanie o relacyjne bazy danych lub dokumenty XML.Deweloperzy piszący w tych językach musieli osadzić odpowiednio SQL lub XQuery jako ciągi, i ręcznie mapować wynikające z tego dane obiekty .NET.Wbudowane sznurki i mapowania zapytania nie mogły być zatwierdzone przez kompilatory .NET, umożliwiając odkrycie potencjalnych błędów w czasie wykonywania.

Innym problemem programiści przed zintegrowanym zapytaniem języka było to, że języki .NET sprzeciwiły się jedynie zorientowanej składniom z kolekcjami.Obiekty netto.Zazwyczaj deweloper iterowałby całą kolekcję źródłową, budując nowe kolekcje wyników oparte na kryteriach wyszukiwania.Deweloper może również przekształcić dane podczas budowania kolekcji wyników.Takie podejście było uciążliwe;Proste pytanie wybrane napisane w C# lub VB wymagałoby co najmniej pięciu wierszy kodu, podczas gdy to samo zapytanie wymagałoby jednej linii kodu w języku zapytania.

Wyzwania dotyczące zapytania w środowisku obiektowym dały Microsoftowi impulsUtwórz LINQ.LINQ zapewnia składnię zapytania przypominająca SQL do użycia w linii z C# lub VB, wraz z sprawdzaniem typu statycznego.Podczas zapytania z kolekcji .NET zamiast używać zagnieżdżonych pętli, programiści mogą używać składni LINQ do wyboru elementów i przekształcenia danych.Wśród innych zalet powoduje to mniejsze wiersze kodu w porównaniu do składni zorientowanej na czysto obiektową.

Przy uzyskiwaniu dostępu do zewnętrznych źródeł danych, LINQ i komponentów obsługi usuwają potrzebę osadzonych języków zapytania i mapowania danych w samym języku .NET.Aby wykonać mapowanie danych, LINQ zależy od komponentów zwanych dostawcami LINQ.LINQ-Obiejects to dostawca zapasów, który umożliwia dostęp do linii dostępu do kolekcji .NET.Podobnie istnieją dostawcy dostępu do relacyjnych baz danych i dokumentów XML.Większość z tych dostawców to komponenty stron trzecich, które nie są zawarte w .NET Framework.Niezależnie od zastosowanego dostawcy wszystkie zapytania używają tej samej składni LINQ.

Między zintegrowaną składnią zapytania, a dostawcy jest biblioteką operatorów zapytań dodanych do .NET Framework jako część obiektów LINQ.Operatorzy te wykonują takie zadania, jak filtrowanie, zamawianie, ustawianie operacji teorii i agregacja.Ponieważ operatorzy są częścią .NET Framework, mogą być również używane bez LINQ, jeśli programista tak wybierze.