Vad är en språkintegrerad fråga?

Språkintegrerad fråga (LINQ) ger möjlighet att smidigt integrera deklarativ frågesyntax i nödvändiga språk, främst C # och VB.NET. Utvecklingen av LINQ löste problemen utvecklare arbetar i objektorienterade miljöer när de utförde frågor. Den introducerades som en del av Microsoft® .NET Framework version 3.5 i november 2007 och i Visual Studio®-kodnamnet "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. Inbyggda frågesträngar och kartläggningar kunde inte valideras av .NET-kompilatorer, vilket möjliggör att potentiella fel kan upptäckas vid körning.

Ett annat problem som utvecklare mötte innan språkintegrerad fråga var att .NET-språk bara hade inriktad syntax till frågesamlingar av .NET-objekt. Vanligtvis skulle utvecklaren iterera över en hel källsamling och bygga nya resultatsamlingar baserade på sökkriterier. Utvecklaren kan också transformera uppgifterna medan han byggde resultatsamlingar. Detta tillvägagångssätt var besvärligt; en enkel utvalda fråga skriven i C # eller VB kräver minst fem kodrader, medan samma fråga kräver en kodrad i ett frågespråk.

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

Vid åtkomst till externa datakällor tar LINQ och stödjande komponenter bort behovet av inbäddade frågespråk och datakartläggningar i ett .NET-språk i sig. För att utföra datakartläggning beror LINQ på komponenter som kallas LINQ-leverantörer. LINQ-to-Objects är den aktieleverantör som gör det möjligt för LINQ att komma åt .NET-samlingar. På liknande sätt finns det leverantörer för åtkomst till relationsdatabaser och XML-dokument. De flesta av dessa leverantörer är komponenter från tredje part som inte ingår i .NET Framework. Oavsett vilken leverantör som används använder alla frågor samma LINQ-syntax.

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

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?