Freigeben über


LINQ to SQL-Abfragen

Sie definieren LINQ to SQL-Abfragen, indem Sie die gleiche Syntax wie in LINQ verwenden. Der einzige Unterschied besteht darin, dass die in Abfragen referenzierten Objekte den Elementen in einer Datenbank zugeordnet werden. Weitere Informationen finden Sie unter Introduction to LINQ queries (C#) (Einführung in LINQ-Abfragen (C#)).

LINQ to SQL übersetzt die Abfragen, die Sie in entsprechende SQL-Abfragen schreiben, und sendet diese zur Verarbeitung an den Server. Ihre Anwendung verwendet die LINQ to SQL-API, um die Abfrageausführung anzufordern. Der LINQ to SQL-Anbieter wandelt dann die Abfrage in SQL-Text um und übergibt die Ausführung an den ADO-Anbieter. Der ADO-Anbieter gibt Abfrageergebnisse als DataReader zurück. Der LINQ to SQL-Anbieter übersetzt die ADO-Ergebnisse zu einer IQueryable-Auflistung von Benutzerobjekten.

Hinweis

Für die meisten Methoden und Operatoren in integrierten .NET Framework-Datentypen gibt es direkte Übersetzungen zu SQL-Befehlen. Jene, die LINQ nicht übersetzen kann, generieren Laufzeitausnahmen. Weitere Informationen finden Sie unter SQL-CLR-Typzuordnung.

Die folgende Tabelle zeigt Ähnlichkeiten und Unterschiede zwischen den Abfrageelementen LINQ-Abfrageelementen und LINQ to SQL-Abfrageelementen.

Element LINQ-Abfrage LINQ to SQL-Abfragen
Rückgabetyp der lokalen Variablen, die die Abfrage (für Abfragen, die Sequenzen zurückgeben) enthält Generisches IEnumerable Generisches IQueryable
Angeben der Datenquelle Verwendet die From -Klausel (Visual Basic) oder from (C#) identisch
Filterung Verwendet die Where/where-Klausel. identisch
Gruppierung Verwendet die Group…By/groupby-Klausel. identisch
Auswählen (Projizieren) Verwendet die Select/select-Klausel. identisch
Verzögerte und unmittelbare Ausführung Siehe Einführung in LINQ-Abfragen(C#) identisch
Implementieren von Joins Verwendet die Join/join-Klausel. Kann die Join/join-Klausel verwenden, effektiver ist jedoch das AssociationAttribute-Attribut. Weitere Informationen finden Sie unter Beziehungsübergreifendes Abfragen.
Remoteausführung und lokale Ausführung Weitere Informationen finden Sie unter Remoteausführung und lokale Ausführung.
Streamingabfragen und gepufferte Abfragen Nicht anwendbar auf ein lokales Arbeitsspeicherszenario

Siehe auch