Einführung in LINQ
Aktualisiert: November 2007
Sprachintegrierte Abfrage (Language-Integrated Query, LINQ) ist eine bahnbrechende Innovation in Visual Studio 2008 und der .NET Framework-Version 3.5, die die Lücke zwischen der Welt der Objekte und der Welt der Daten schließt.
Herkömmlicherweise sind Abfragen nach Daten als einfache Zeichenfolgen ausgedrückt, ohne Typüberprüfung zur Kompilierungszeit oder Unterstützung von IntelliSense. Außerdem ist für jeden Datenquellentyp eine andere Abfragesprache erforderlich: SQL-Datenbanken, XML-Dokumente, verschiedene Webdienste und so weiter. LINQ macht aus einer Abfrage ein erstklassiges Sprachkonstrukt in C# und Visual Basic. Sie schreiben Abfragen für Objektauflistungen mit strikter Typbindung, indem Sie Schlüsselwörter und vertraute Operatoren verwenden. Die folgende Abbildung zeigt eine teilweise abgeschlossene LINQ-Abfrage anhand einer SQL Server-Datenbank in C# mit voller Typüberprüfung und Unterstützung von IntelliSense.
In Visual Studio können Sie LINQ-Abfragen in Visual Basic oder C# mit SQL Server-Datenbanken, XML-Dokumenten, ADO.NET-Datasets schreiben sowie jede Auflistung von Objekten, die IEnumerable oder die generische IEnumerable<T>-Schnittstelle unterstützt. LINQ-Unterstützung für das ADO.NET-Entity Framework ist ebenfalls geplant, und LINQ-Anbieter werden für viele Webdienste und andere Datenbankimplementierungen von Dritten geschrieben.
Sie können LINQ-Abfragen in neuen Projekten oder zusätzlich zu Nicht-LINQ-Abfragen in vorhandenen Projekten verwenden. Die einzige Anforderung ist, dass das Projekt auf Version 3.5 von .NET Framework abzielt.
Nächste Schritte
Weitere Einzelheiten zu LINQ erfahren Sie, wenn Sie sich mit einigen grundlegenden Konzepten im Abschnitt Erste Schritte in der von Ihnen gewünschten Sprache vertraut machen.
Lesen Sie dann die Dokumentation für die LINQ-Technologie, für die Sie sich interessieren:
SQL Server-Datenbanken: LINQ to SQL
XML-Dokumente: LINQ to XML
ADO.NET-Datasets: LINQ to DataSet
.NET-Auflistungen, Dateien, Zeichenfolgen usw.: LINQ to Objects