LINQ naar SQL-query's
U definieert LINQ voor SQL-query's met dezelfde syntaxis als in LINQ. Het enige verschil is dat de objecten waarnaar in uw query's wordt verwezen, worden toegewezen aan elementen in een database. Zie Inleiding tot LINQ-query's (C#) voor meer informatie.
LINQ naar SQL vertaalt de query's die u schrijft in gelijkwaardige SQL-query's en verzendt deze naar de server voor verwerking. Meer specifiek gebruikt uw toepassing de LINQ naar SQL API om de uitvoering van query's aan te vragen. De LINQ naar SQL-provider transformeert de query vervolgens in SQL-tekst en delegeert de uitvoering naar de ADO-provider. De ADO-provider retourneert queryresultaten als een DataReader
. De LINQ naar SQL-provider vertaalt de ADO-resultaten naar een IQueryable verzameling gebruikersobjecten.
Notitie
De meeste methoden en operators op ingebouwde .NET Framework-typen hebben directe vertalingen naar SQL. Degenen die LINQ niet kunnen vertalen, genereren runtime-uitzonderingen. Zie Toewijzing van SQL-CLR-typen voor meer informatie.
In de volgende tabel ziet u de overeenkomsten en verschillen tussen LINQ en LINQ naar SQL-query-items.
Artikel | LINQ-query | LINQ naar SQL-query |
---|---|---|
Retourtype van de lokale variabele die de query bevat (voor query's die reeksen retourneren) | Generieke IEnumerable |
Generieke IQueryable |
De gegevensbron opgeven | Maakt gebruik van de From component (Visual Basic) of from (C#) |
Zelfde |
Filteren | Maakt gebruik van de Where /where component |
Zelfde |
Groepering | Maakt gebruik van de Group…By /groupby component |
Zelfde |
Selecteren (projecteren) | Maakt gebruik van de Select /select component |
Zelfde |
Uitgestelde versus onmiddellijke uitvoering | Zie Inleiding tot LINQ-query's (C#) | Zelfde |
Joins implementeren | Maakt gebruik van de Join /join component |
Kan de Join /join component gebruiken, maar maakt effectiever gebruik van het AssociationAttribute kenmerk. Zie Query's uitvoeren op meerdere relaties voor meer informatie. |
Extern versus lokale uitvoering | Zie Remote versus Local Execution voor meer informatie. | |
Streaming versus query's in de cache | Niet van toepassing in een lokaal geheugenscenario |