Overzicht van LINQ naar DataSet
Het DataSet is een van de meer gebruikte onderdelen van ADO.NET. Het is een belangrijk element van het niet-verbonden programmeermodel waarop ADO.NET is gebaseerd en waarmee u expliciet gegevens uit verschillende gegevensbronnen kunt opslaan. Voor de presentatielaag is de DataSet laag nauw geïntegreerd met GUI-besturingselementen voor gegevensbinding. Voor de middelste laag biedt het een cache die de relationele vorm van gegevens behoudt en snelle eenvoudige query- en hiërarchienavigatieservices bevat. Een veelgebruikte techniek die wordt gebruikt om het aantal aanvragen voor een database te verlagen, is het gebruik van de DataSet voor caching in de middelste laag. Denk bijvoorbeeld aan een gegevensgestuurde ASP.NET webtoepassing. Vaak verandert een aanzienlijk deel van de toepassingsgegevens niet vaak en is het gebruikelijk voor sessies of gebruikers. Deze gegevens kunnen worden bewaard in het geheugen op de webserver, waardoor het aantal aanvragen voor de database wordt verminderd en de interacties van de gebruiker worden versneld. Een ander nuttig aspect van de DataSet toepassing is dat een toepassing subsets van gegevens uit een of meer gegevensbronnen in de toepassingsruimte kan overbrengen. De toepassing kan vervolgens de gegevens in het geheugen bewerken, terwijl de relationele shape behouden blijft.
Ondanks zijn bekendheid heeft de DataSet querymogelijkheden beperkt. De Select methode kan worden gebruikt voor filteren en sorteren, en de GetChildRows en GetParentRow methoden kunnen worden gebruikt voor hiërarchienavigatie. Voor iets complexer moet de ontwikkelaar echter een aangepaste query schrijven. Dit kan leiden tot toepassingen die slecht presteren en moeilijk te onderhouden zijn.
LINQ naar DataSet maakt het eenvoudiger en sneller om query's uit te voeren op gegevens die in een object in de DataSet cache zijn opgeslagen. Deze query's worden uitgedrukt in de programmeertaal zelf in plaats van als letterlijke tekenreeksen die zijn ingesloten in de toepassingscode. Dit betekent dat ontwikkelaars geen afzonderlijke querytaal hoeven te leren. Bovendien kunnen Visual Studio-ontwikkelaars met LINQ naar DataSet productiever werken, omdat visual Studio IDE compileertijdcontrole, statische typen en IntelliSense-ondersteuning biedt voor LINQ. LINQ naar DataSet kan ook worden gebruikt om query's uit te voeren op gegevens die zijn geconsolideerd vanuit een of meer gegevensbronnen. Dit maakt veel scenario's mogelijk die flexibiliteit vereisen in de manier waarop gegevens worden weergegeven en verwerkt. Met name voor algemene rapportage-, analyse- en business intelligence-toepassingen is deze manipulatiemethode vereist.
Query's uitvoeren op DataSets met LINQ naar DataSet
Voordat u een query kunt uitvoeren op een DataSet object met LINQ naar DataSet, moet u het DataSet. Er zijn verschillende manieren om gegevens in een DataSette laden, zoals het gebruik van de DataAdapter klasse of LINQ naar SQL. Nadat de gegevens in een DataSet object zijn geladen, kunt u beginnen met het uitvoeren van query's. Het formuleren van query's met LINQ naar DataSet is vergelijkbaar met het gebruik van LINQ (Language-Integrated Query) voor andere gegevensbronnen met LINQ. LINQ-query's kunnen worden uitgevoerd op één tabel in een DataSet of meer tabellen met behulp van de Join en GroupJoin standaardqueryoperators.
LINQ-query's worden ondersteund voor zowel getypte als niet-getypte DataSet objecten. Als het schema van de toepassing bekend is tijdens het ontwerptijd van de DataSet toepassing, wordt een getypte DataSet aanbevolen. In een getypte DataSettabel en rij hebben de tabellen en rijen leden getypt voor elk van de kolommen, waardoor query's eenvoudiger en beter leesbaar zijn.
Naast de standaardqueryoperators die zijn geïmplementeerd in System.Core.dll, voegt LINQ aan DataSet verschillende DataSet-specifieke extensies toe waarmee u gemakkelijker query's kunt uitvoeren op een set DataRow objecten. Deze DataSet-specifieke extensies omvatten operators voor het vergelijken van reeksen rijen, evenals methoden die toegang bieden tot de kolomwaarden van een DataRow.
Toepassingen met N-lagen en LINQ naar DataSet
Gegevenstoepassingen met een N-laag zijn gegevensgerichte toepassingen die zijn gescheiden in meerdere logische lagen (of lagen). Een typische N-tier-toepassing bevat een presentatielaag, een middelste laag en een gegevenslaag. Het scheiden van toepassingsonderdelen in afzonderlijke lagen verhoogt de onderhoudbaarheid en schaalbaarheid van de toepassing. Zie Werken met gegevenssets in n-tier-toepassingen voor meer informatie over gegevenstoepassingen met N-lagen.
In N-tier-toepassingen wordt deze DataSet vaak gebruikt in de middelste laag om informatie voor een webtoepassing op te cachen. De LINQ naar DataSet-queryfunctionaliteit wordt geïmplementeerd via extensiemethoden en breidt de bestaande ADO.NET 2.0 DataSetuit.