Skip to main content

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 relationsdatabaser 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 kartläggningar kunde inte valideras av .NET-kompilatorer, vilket tillät potentiella fel att upptäckas vid körning.

Ett annat problem som utvecklare mötte innan språkintegrerad fråga var att .NET-språk endast hade invändat syntax till Query-samlingar av.Nettoobjekt.Vanligtvis skulle utvecklaren iterera över en hel källsamling och bygga nya resultatsamlingar baserade på sökkriterier.Utvecklaren kunde också omvandla uppgifterna medan du bygger resultatsamlingarna.Detta tillvägagångssätt var besvärligt;En enkel utvald fråga skriven i C# eller VB skulle kräva minst fem kodrader, medan samma fråga skulle kräva en kodrad på ett frågespråk.

Utmaningarna med fråga inom en objektorienterad miljö gav Microsoft drivkraften tillskapa 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 kodlinjer jämfört med rent objektorienterad syntax.

När du får åtkomst till externa datakällor, ta bort LINQ och stödkomponenter behovet av inbäddade frågespråk och datakartlägg 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 integrerade frågesyntaxen och leverantörerna är ett bibliotek med frågefunktö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.