Freigeben über


Verwenden von LINQ in Visual Basic Express

Aktualisiert: November 2007

Häufig verwenden Anwendungen Daten in SQL-Datenbanken oder XML-Dokumenten. Als Entwickler mussten Sie für die Arbeit mit diesen Daten eine zusätzliche Sprache wie SQL oder XQuery lernen. Mit Sprachintegrierte Abfrage (Language-Integrated Query, LINQ) werden Abfragefunktionen direkt in die Visual Basic-Sprache eingeführt, sodass Sie keine völlig neue Abfragesprache mehr erlernen müssen. Jetzt können Sie Ihre vorhandenen Visual Basic-Kenntnisse zusammen mit einigen zusätzlichen Schlüsselwörtern und Konzepten verwenden, um SQL-Datenbanken, ADO.NET-DataSets, XML-Dokumente und beliebige .NET Framework-Auflistungsklassen abzufragen, die die IEnumerable-Schnittstelle implementieren.

Vorteile der Verwendung von LINQ

  • Vertraute Syntax zum Schreiben von Abfragen

  • Syntaxfehler- und Typsicherheitsüberprüfung zur Kompilierzeit

  • Verbesserte Debuggerunterstützung

  • IntelliSense-Unterstützung

  • Unterstützung des direkten Arbeitens mit XML-Elementen, im Gegensatz zum Erstellen eines XML-Containerdokuments, wie es beim W3C-Dokumentobjektmodell (DOM) erforderlich ist

  • Speicherinternes Ändern von XML-Dokumenten, das leistungsstark und doch einfacher zu verwenden ist als XPath oder XQuery

  • Leistungsstarke Filterungs-, Sortierungs- und Gruppierungsfunktionen

  • Konsistentes Modell zum Arbeiten mit Daten in verschiedenen Arten von Datenquellen und Formaten

Schreiben von LINQ-Abfragen

Die grundlegende Struktur einer LINQ-Abfrage ist stets dieselbe, unabhängig davon, ob Sie mit ADO.NET-DataSets, SQL-Datenbanken, .NET Framework-Auflistungen oder XML-Dokumenten arbeiten. Ein Abfrageausdruck beginnt mit einer From-Klausel, gefolgt von Abfrageklauseln wie Where und Select. Der vollständige Ausdruck wird in einer Abfragevariablen gespeichert, die beliebig häufig ausgeführt oder geändert werden kann. Die Syntax von Abfrageausdrücken ähnelt der Syntax von SQL. Sie können beispielsweise die folgende Syntax verwenden, um eine LINQ-Abfrage zu schreiben, die alle Studenten, deren Hauptfach Naturwissenschaft ist, aus einer Studentendatenbank zurückgibt:

Dim StudentQuery = From student in studentApp.students 
    Where student.Major = "Science" _
    Select student

Weitere Informationen finden Sie unter Abfragen (Visual Basic) und Schreiben der ersten LINQ-Abfrage (Visual Basic).

Eine LINQ-Abfrage besteht aus drei grundlegenden Phasen. Abrufen der Datenquelle, Definieren des Abfrageausdrucks und Ausführen der Abfrage. Weitere Informationen hierzu finden Sie unter Schreiben der ersten LINQ-Abfrage (Visual Basic).

LINQ to Objects

Der Begriff LINQ to Objects bezieht sich auf die Verwendung von LINQ zum Abrufen von speicherinternen Datenstrukturen, die IEnumerable unterstützen. Weitere Informationen finden Sie unter LINQ to Objects.

LINQ to SQL

Greifen Sie mit LINQ to SQL über eine stark typisierte Objektschicht, die mit dem O/R-Designer erstellt wird, auf SQL Server- und SQL Server Express-Datenbanken zu.

Mit dem O/R-Designer können Sie LINQ to SQL-Klassen Tabellen in einer Datenbank zuordnen und anschließend LINQ-Abfragen schreiben, um Daten in Ihrer Anwendung an Steuerelemente zu binden. Beispielsweise werden im folgenden LINQ-Code die Ergebnisse einer LINQ-Abfrage (alle Kunden aus den USA) an die Datenquelle eines DataGridView-Steuerelements gebunden.

Dim CustomersQuery = From customers in NorthwindSampleDataContext1.Customers _
    Where customers.Country = "US" _
    Select customers

CustomerBindingSource.DataSource = CustomersQuery

Weitere Informationen finden Sie unter LINQ to SQL, Übersicht über den O/R-Designer, Erstellen von LINQ to SQL-Klassen: Verwenden des O/R-Designers und unter Verwenden von LINQ zum Binden von Daten an Steuerelemente.

Hinweis:

Der O/R-Designer unterstützt derzeit keine SQL Server Compact 3.5-Datenbanken. Informationen zum Erhalt der SQL Server Express Edition finden Sie unter Gewusst wie: Installieren von Beispieldatenbanken im Abschnitt zum Abrufen von SQL Server Express Edition.

LINQ to DataSet

Daten werden in einer Anwendung mithilfe von DataSet an Steuerelemente gebunden. Statt direkt eine Verbindung mit einer Datenbank herzustellen, können Sie mit einem DataSet einen Offlinedatencache erstellen, der Teilmengen verschiedener Datenquellen enthalten kann, die in einer Anwendung verwendet werden sollen. Wenn die Anwendung in den Onlinemodus wechselt, kann die Datenbank mit den Änderungen im DataSet aktualisiert werden.

Mit LINQ to DataSet sind Abfragen über zwischengespeicherte Daten schneller und einfacher als mit den Filter- und Sortierfunktionen, die für ein DataSet verfügbar sind. Weitere Informationen finden Sie unter LINQ to DataSet.

LINQ to XML

Anstatt XPath oder XQuery lernen zu müssen, können Sie XML-Dokumente mit LINQ to XML einfach erstellen und ändern, indem Sie LINQ-Abfrageausdrücke verwenden. LINQ to XML ist eine neue speicherinterne API für XML, die anstelle von W3C-DOM moderne Programmierkonstrukte verwendet. Weitere Informationen finden Sie unter Übersicht über LINQ to XML in Visual Basic, Direkte Aufnahme von XML in den Code: Verwenden von XML-Literalen und Sprachintegrierte Achsen in Visual Basic (LINQ to XML).

Siehe auch

Konzepte

Erste Schritte (LINQ to SQL)

Weitere Ressourcen

Erste Schritte mit LINQ in Visual Basic

Erste Schritte (LINQ to DataSet)

Erste Schritte (LINQ to XML)