Co to jest zapytanie zintegrowane językiem?
Zintegrowane zapytanie językowe (LINQ) zapewnia możliwość bezproblemowego zintegrowania 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 w wersji 3.5 w listopadzie 2007 r. Oraz w nazwie Visual Studio® Codename „Orcas.”
Przed utworzeniem zintegrowanego języka, języki .NET nie miały rodzimego sposobu na zapytanie relacyjnych baz danych lub dokumentów 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 wykrycie potencjalnych błędów w czasie wykonywania.
Innym problemem programiści przed zintegrowanym zapytaniem było to, że języki .NET miało sprzeciwione składnię zorientowaną tylko na zapytania .NET OB.Jects. 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 zapytanie 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 impuls do utworzenia 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ą.
Podczas uzyskiwania dostępu do zewnętrznego DŹródła ATA, LINQ i komponenty pomocnicze 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 językiem zintegrowanym składnią zapytania a dostawcami jest biblioteka operatorów zapytań dodanych do .NET Framework w ramach obiektów LINQ. Operatorzy te wykonują takie zadania, jak filtrowanie, zamawianie, ustawianie operacji teorii i agregacja. Ponieważ te operatorzy są częścią .NET Framework, można ich również używać bez LINQ, jeśli programista tak wybierze.