Wat is een taal geïntegreerde zoekopdracht?
Taal geïntegreerde query (LINQ) biedt de mogelijkheid om de declaratieve query -syntaxis naadloos te integreren in imperatieve talen, voornamelijk C# en VB.NET. De ontwikkeling van LINQ loste de problemen op die ontwikkelaars die werkten in objectgeoriënteerde omgevingen die werden aangetroffen bij het uitvoeren van vragen. Het werd geïntroduceerd als onderdeel van de Microsoft® .NET Framework -versie 3.5 in november 2007, en in Visual Studio® codenaam "Orcas."
Voorafgaand aan het creëren van taal geïntegreerde query, .NET -talen hadden geen native manier om relationele databases of XML -documenten te vragen. Ontwikkelaars die in deze talen schrijven, moesten SQL of XQuery respectievelijk insluiten als tekenreeksen en de resulterende gegevens handmatig toewijzen aan .NET -objecten. Embedded Query Strings and Mappings konden niet worden gevalideerd door .NET-compilers, waardoor potentiële fouten tijdens runtime kunnen worden ontdekt.
Een andere probleemontwikkelaars die geconfronteerd werd voordat de taal geïntegreerde query was, was dat .NET-talen alleen bezwaar hadden georiënteerde syntaxis om collecties van .NET OB te vragen.Jects. Doorgaans zou de ontwikkelaar een hele broncollectie herhalen en nieuwe resultaatcollecties bouwen op basis van zoekcriteria. De ontwikkelaar kan ook de gegevens transformeren tijdens het bouwen van de resultaatcollecties. Deze benadering was omslachtig; Een eenvoudige geselecteerde query geschreven in C# of VB zou ten minste vijf regels code nodig hebben, terwijl dezelfde query één regel code in een querytaal zou vereisen.
De uitdagingen van het zoeken naar een objectgeoriënteerde omgeving gaven Microsoft de impuls om LINQ te maken. LINQ biedt een query-syntaxis die doet denken aan SQL die in-line moet worden gebruikt met C# of VB, compleet met statische typecontrole. Bij het opvragen van .NET -collecties kunnen ontwikkelaars in plaats van geneste lussen LinQ -syntaxis gebruiken om items te selecteren en gegevens te transformeren. Onder andere voordelen resulteert dit in minder coderegels in vergelijking met puur objectgeoriënteerde syntaxis.
Bij toegang tot externe DATA -bronnen, LINQ en ondersteunende componenten verwijderen de behoefte aan ingebedde querytalen en gegevensverslagen binnen een .NET -taal zelf. Om gegevensmapping uit te voeren, hangt LINQ af van componenten genaamd LINQ -providers. Linq-to-Objects is de aandelenaanbieder waarmee LINQ toegang heeft tot .NET-collecties. Evenzo zijn er providers om toegang te krijgen tot relationele databases en XML -documenten. De meeste van deze providers zijn componenten van derden die niet in het .NET-framework zijn opgenomen. Ongeacht de gebruikte provider, alle query's gebruiken dezelfde LINQ -syntaxis.
Tussen de taal Integrated Query -syntaxis en de providers is een bibliotheek van query -operators die aan het .NET -framework zijn toegevoegd als onderdeel van de LINQ -faciliteiten. Deze operatoren voeren taken uit als filteren, bestellen, instellen van theorie -bewerkingen en aggregatie. Aangezien deze operators deel uitmaken van het .NET -framework, kunnen ze ook worden gebruikt zonder LINQ als de ontwikkelaar zo kiest.