Vad är en språkintegrerad fråga?

Språkintegrerad fråga (LINQ) ger förmågan att sömlöst integrera deklarativ frågesyntax i imperativa språk, främst C# och VB.NET. Utvecklingen av LINQ löste problemen som utvecklare som arbetade i objektorienterade miljöer som uppstod när de utför frågor. Det introducerades som en del av Microsoft® .NET Framework Version 3.5 I november 2007, och i Visual Studio® CodeName "Orcas."

Innan skapandet av språkintegrerad fråga hade .NET -språk inget ursprungligt sätt att fråga relationella databaser eller XML -dokument. Utvecklare som skrev på dessa språk var tvungna att bädda in SQL respektive XQuery som strängar och manuellt kartlägga resulterande data till .NET -objekt. Inbäddade frågesträngar och mappningar kunde inte valideras av .NET-kompilatorer, vilket tillät potentiella fel att upptäckas vid körning.

En annan problem som utvecklare mötte innan språkintegrerad fråga var att .NET-språk bara hade invändningarjects. Vanligtvis skulle utvecklaren iterera över en hel källsamling och bygga nya resultatsamlingar baserade på sökkriterier. Utvecklaren kunde också omvandla uppgifterna medan han byggde resultatsamlingarna. Denna metod var besvärlig; En enkel utvald fråga skriven i C# eller VB kräver minst fem kodrader, medan samma fråga skulle kräva en kodrad på ett frågespråk.

Utmaningarna med att fråga inom en objektorienterad miljö gav Microsoft drivkraften för att skapa LINQ. LINQ tillhandahåller en frågesyntax som påminner om SQL som ska användas in-line med C# eller VB, komplett med statisk typkontroll. Vid fråga .NET -samlingar, istället för att använda kapslade slingor, kan utvecklare använda LINQ -syntax för att välja objekt och omvandla data. Bland andra fördelar resulterar detta i färre kodrader jämfört med rent objektorienterad syntax.

När du får åtkomst till extern DATA -källor, LINQ och stödkomponenter tar bort behovet av inbäddade frågeställningar och datakartläggningar inom ett .NET -språk. För att utföra datakartläggning beror LINQ på komponenter som kallas LINQ -leverantörer. LINQ-till-objekt är aktieleverantören som gör det möjligt för LINQ att komma åt .NET-samlingar. På liknande sätt finns det leverantörer för att få åtkomst till relationsdatabaser och XML -dokument. De flesta av dessa leverantörer är tredjepartskomponenter som inte ingår i .NET-ramverket. Oavsett vilken leverantör som används använder alla frågor samma LINQ -syntax.

Mellan den språkintegrerade frågesyntaxen och leverantörerna är ett bibliotek med frågeformatörer som läggs till .NET -ramverket som en del av LINQ -anläggningarna. Dessa operatörer utför sådana uppgifter som filtrering, beställning, inställning av teorioperationer och aggregering. Eftersom dessa operatörer är en del av .NET -ramverket kan de också användas utan LINQ om utvecklaren väljer.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?