Freigeben über


Übersicht über LINQ to DataSet

Dies DataSet ist eine der am weitesten verbreiteten Komponenten von ADO.NET. Es handelt sich um ein Schlüsselelement des getrennten Programmiermodells, auf dem ADO.NET basiert, und es ermöglicht Es Ihnen, Daten aus verschiedenen Datenquellen explizit zwischenzuspeichern. Für die Präsentationsebene ist DataSet eng mit GUI-Steuerelementen für die Datenbindung integriert. Für die mittlere Ebene stellt sie einen Cache bereit, der die relationale Form von Daten bewahrt und schnelle einfache Abfrage- und Hierarchienavigationsdienste enthält. Ein gängiges Verfahren zur Verringerung der Anzahl von Anfragen an eine Datenbank besteht darin, das DataSet für das Caching in der mittleren Schicht zu verwenden. Betrachten Sie beispielsweise eine datengesteuerte ASP.NET Webanwendung. Oftmals ändert sich ein erheblicher Teil der Anwendungsdaten nicht häufig und ist über Sitzungen oder Benutzer hinweg gleichbleibend. Diese Daten können im Arbeitsspeicher auf dem Webserver gespeichert werden, wodurch die Anzahl der Anforderungen an die Datenbank reduziert und die Interaktionen des Benutzers beschleunigt werden. Ein weiterer nützlicher Aspekt von DataSet ist, dass eine Anwendung Teilmengen von Daten aus einer oder mehreren Datenquellen in den Bereich der Anwendung laden kann. Die Anwendung kann dann die Daten im Arbeitsspeicher verarbeiten, während sie ihre relationale Struktur beibehält.

Trotz seiner Prominenz verfügt die DataSet über eingeschränkte Abfragefunktionen. Zum Filtern und Sortieren kann die Select-Methode verwendet werden, und die Methoden GetChildRows und GetParentRow ermöglichen die Navigation in der Hierarchie. Für einen komplexeren Vorgang muss der Entwickler jedoch eine benutzerdefinierte Abfrage schreiben. Dies kann zu Anwendungen führen, die schlecht ausgeführt werden und schwierig zu verwalten sind.

Mit LINQ to DataSet können Daten, die in einem DataSet-Objekt zwischengespeichert sind, einfacher und schneller abgefragt werden. Diese Abfragen werden in der Programmiersprache selbst ausgedrückt und nicht als Zeichenfolgenliterale, die in den Anwendungscode eingebettet sind. Dies bedeutet, dass Entwickler keine separate Abfragesprache erlernen müssen. Darüber hinaus können Visual Studio-Entwickler*innen mit LINQ to DataSet produktiver arbeiten, da die Visual Studio-IDE Syntaxüberprüfung zur Kompilierzeit, statische Typisierung und IntelliSense-Unterstützung für LINQ bietet. LINQ to DataSet kann auch verwendet werden, um Daten abzufragen, die aus einer oder mehreren Datenquellen konsolidiert wurden. Dies ermöglicht viele Szenarien, die Flexibilität bei der Darstellung und Verarbeitung von Daten erfordern. Insbesondere erfordern generische Berichterstellungs-, Analyse- und Business Intelligence-Anwendungen diese Manipulationsmethode.

Abfragen von DataSets mit LINQ to DataSet

Bevor Sie mit dem Abfragen eines DataSet-Objekts mit LINQ to DataSet beginnen können, müssen Sie DataSet auffüllen. Es gibt mehrere Möglichkeiten zum Laden von Daten in eine DataSet, z. B. die Verwendung der DataAdapter Klasse oder LINQ to SQL. Nachdem die Daten in ein DataSet Objekt geladen wurden, können Sie mit der Abfrage beginnen. Das Erstellen von Abfragen mithilfe von LINQ to DataSet ähnelt der Verwendung von Language-Integrated Query (LINQ) für andere LINQ-fähige Datenquellen. LINQ-Abfragen können mithilfe der DataSet Operatoren und Join Standardabfrageoperatoren für einzelne Tabellen in einer GroupJoin oder für mehrere Tabellen ausgeführt werden.

LINQ-Abfragen werden sowohl für typisierte als auch für nicht typisierte DataSet Objekte unterstützt. Wenn das DataSet-Schema zum Zeitpunkt der Anwendungskonzeptionierung bereits bekannt ist, wird empfohlen, mit einem typisierten DataSet zu arbeiten. In einem typisierten DataSet haben die Tabellen und Zeilen typisierte Mitglieder für jede Spalte, wodurch Abfragen einfacher und besser lesbar werden.

Neben den in System.Core.dllimplementierten Standardabfrageoperatoren fügt LINQ to DataSet mehrere DataSetspezifische Erweiterungen hinzu, die das Abfragen über eine Reihe von DataRow Objekten vereinfachen. Diese DataSet-spezifischen Erweiterungen umfassen Operatoren zum Vergleichen von Zeilenabfolgen sowie Methoden, die Zugriff auf die Spaltenwerte einer DataRow ermöglichen.

N-Tier-Anwendungen und LINQ to DataSet

N-Ebenen-Datenanwendungen sind datenorientierte Anwendungen, die in mehrere logische Ebenen (oder Ebenen) getrennt sind. Eine typische N-Ebene-Anwendung umfasst eine Präsentationsleiste, eine mittlere Ebene und eine Datenebene. Durch das Trennen von Anwendungskomponenten in separate Ebenen wird die Wartungs- und Skalierbarkeit der Anwendung erhöht. Weitere Informationen zu N-Tier-Datenanwendungen finden Sie unter Arbeiten mit Datasets in n-Ebenen-Anwendungen.

In N-Ebenen-Anwendungen wird DataSet häufig in der mittleren Ebene verwendet, um Informationen für eine Webanwendung zu zwischenspeichern. Die LINQ to DataSet-Abfragefunktionalität wird über Erweiterungsmethoden implementiert und erweitert die vorhandene ADO.NET 2.0 DataSet.

Siehe auch