Skip to main content

Hvad er et sprog integreret forespørgsel?

Sprog Integrated Query (LINQ) giver mulighed for problemfrit at integrere erklærende forespørgselssyntaks i imperative sprog, primært C# og VB.NET.Udviklingen af LINQ løste de problemer, som udviklere arbejder i objektorienterede miljøer, der blev fundet, når de udfører forespørgsler.Det blev introduceret som en del af Microsoft .NET Framework version 3.5 i november 2007 og i Visual Studio Kodenavn Orcas.

Før oprettelse af sprogintegreret forespørgsel havde .NET -sprog ingen indbygget måde at forespørge relationelle databaser eller XML -dokumenter på.Udviklere, der skrev på disse sprog, måtte integrere henholdsvis SQL eller XQuery som strenge og manuelt kortlægge resulterende data til .NET -objekter.Indlejrede forespørgselsstrenge og kortlægninger kunne ikke valideres af .NET-kompilatorer, hvilket gjorde det muligt at opdage potentielle fejl ved kørsel.Nettoobjekter.Typisk ville udvikleren iterere over en hel kildekollektion og opbygge nye resultatsamlinger baseret på søgekriterier.Udvikleren kunne også transformere dataene, mens de bygger resultatsamlingerne.Denne tilgang var besværlig;En simpel valgt forespørgsel skrevet i C# eller VB ville kræve mindst fem kodelinjer, mens den samme forespørgsel ville kræve en kodelinje på et forespørgselssprog.

Udfordringerne ved forespørgsel inden for et objektorienteret miljø gav Microsoft drivkraften tilOpret linq.LINQ leverer en forespørgselssyntaks, der minder om SQL, der skal bruges på linje med C# eller VB, komplet med statisk type kontrol.Ved forespørgsel .NET -samlinger, i stedet for at bruge indlejrede løkker, kan udviklere bruge LINQ -syntaks til at vælge genstande og transformere data.Blandt andre fordele resulterer dette i færre kodelinjer sammenlignet med rent objektorienteret syntaks.

Når du får adgang til eksterne datakilder, fjerner LINQ og understøttende komponenter behovet for indlejrede forespørgselssprog og datakortlægning inden for et .NET -sprog i sig selv.For at udføre datakortlægning afhænger LINQ af komponenter kaldet LINQ -udbydere.Linq-to-Objects er aktieudbyderen, der gør det muligt for LINQ at få adgang til .NET-samlinger.Tilsvarende er der udbydere til at få adgang til relationelle databaser og XML -dokumenter.De fleste af disse udbydere er tredjepartskomponenter, der ikke er inkluderet i .NET-rammen.Uanset den anvendte udbyder bruger alle forespørgsler den samme LINQ -syntaks.

Mellem det sprog, der er integreret forespørgselssyntaks og udbydere, er et bibliotek med forespørgselsoperatører tilføjet til .NET -rammen som en del af LINQ -faciliteterne.Disse operatører udfører sådanne opgaver som filtrering, bestilling, sætteori -operationer og aggregering.Da disse operatører er en del af .NET -rammen, kan de også bruges uden LINQ, hvis udvikleren vælger.