Skip to main content

Hva er et språk integrert spørring?

Language Integrated Query (LINQ) gir muligheten til å sømløst integrere deklarativ spørringssyntaks i imperative språk, først og fremst C# og VB.NET.Utviklingen av LINQ løste problemene utviklerne som arbeider i objektorienterte miljøer, møtte når de utførte spørsmål.Det ble introdusert som en del av Microsoft .NET Framework versjon 3.5 i november 2007, og i Visual Studio kodenavn orkaer.

Før oppretting av språk integrert spørring, hadde .NET -språk ingen innfødt måte å spørre relasjonsdatabaser eller XML -dokumenter.Utviklere som skrev på disse språkene måtte legge inn henholdsvis SQL eller XQuery som strenger, og manuelt kartlegge resulterende data til .NET -objekter.Innbygde spørringsstrenger og kartlegging kunne ikke valideres av .NET-kompilatorer, slik at potensielle feil kunne oppdages ved kjøretid.

Et annet problem utviklere som ble møtt før språkintegrert spørring var at .NET-språk bare hadde objektorisk orientert syntaks til spørringssamlinger av.Netto objekter.Vanligvis vil utvikleren iterere over en hel kildesamling og bygge nye resultatsamlinger basert på søkekriterier.Utvikleren kan også transformere dataene mens de bygger resultatsamlingene.Denne tilnærmingen var tungvint;En enkel valgt spørring skrevet i C# eller VB vil kreve minst fem kodelinjer, mens den samme spørringen vil kreve en kodelinje i et spørringsspråk.

Opprett Linq.LINQ gir en spørringssyntaks som minner om SQL som skal brukes på linje med C# eller VB, komplett med statisk type sjekking.Når du spør. NET -samlinger, i stedet for å bruke nestede løkker, kan utviklere bruke LINQ -syntaks for å velge elementer og transformere data.Blant andre fordeler resulterer dette i færre kodelinjer sammenlignet med rent objektorientert syntaks. Når du får tilgang til eksterne datakilder, fjerner LINQ og støttekomponenter behovet for innebygde spørringsspråk og datakartlegging innen et .NET -språk.For å utføre datakartlegging, avhenger LINQ av komponenter kalt LINQ -leverandører.LINQ-to-Objects er akseleverandøren som gjør det mulig for LINQ å få tilgang til .NET-samlinger.Tilsvarende er det leverandører som får tilgang til relasjonsdatabaser og XML -dokumenter.De fleste av disse leverandørene er tredjepartskomponenter som ikke er inkludert i .NET-rammen.Uansett leverandør som er brukt, bruker alle spørsmål den samme LINQ -syntaks. mellom språkets integrerte spørringssyntaks og leverandørene er et bibliotek med spørringsoperatører lagt til .NET -rammen som en del av LINQ -fasilitetene.Disse operatørene utfører slike oppgaver som filtrering, bestilling, setter teorioperasjoner og aggregering.Siden disse operatørene er en del av .NET -rammen, kan de også brukes uten LINQ hvis utvikleren velger det.