Share via


Query's in LINQ naar entiteiten

Een query is een expressie waarmee gegevens uit een gegevensbron worden opgehaald. Query's worden meestal uitgedrukt in een gespecialiseerde querytaal, zoals SQL voor relationele databases en XQuery voor XML. Daarom moesten ontwikkelaars een nieuwe querytaal leren voor elk type gegevensbron of gegevensindeling waarop ze een query uitvoeren. Language-Integrated Query (LINQ) biedt een eenvoudigere consis tentmodus l voor het werken met gegevens in verschillende soorten gegevensbronnen en indelingen. In een LINQ-query werkt u altijd met programmeerobjecten.

Een LINQ-querybewerking bestaat uit drie acties: de gegevensbron of bronnen ophalen, de query maken en de query uitvoeren.

Gegevensbronnen die de IEnumerable<T> algemene interface of de IQueryable<T> algemene interface implementeren, kunnen worden opgevraagd via LINQ. Exemplaren van de algemene klasse, die de algemene ObjectQuery<T>IQueryable<T> interface implementeert, fungeren als de gegevensbron voor LINQ naar entiteiten-query's. De ObjectQuery<T> algemene klasse vertegenwoordigt een query die een verzameling nul of meer getypte objecten retourneert. U kunt de compiler ook het type entiteit laten afleiden met behulp van het C#-trefwoord var (Dim in Visual Basic).

In de query geeft u precies de informatie op die u uit de gegevensbron wilt ophalen. Een query kan ook opgeven hoe deze informatie moet worden gesorteerd, gegroepeerd en vormgegeven voordat deze wordt geretourneerd. In LINQ wordt een query opgeslagen in een variabele. Als de query een reeks waarden retourneert, moet de queryvariabele zelf een querybaar type zijn. Deze queryvariabele voert geen actie uit en retourneert geen gegevens; alleen de querygegevens worden opgeslagen. Nadat u een query hebt gemaakt, moet u die query uitvoeren om gegevens op te halen.

Querysyntaxis

LINQ-naar-entiteitenquery's kunnen worden samengesteld in twee verschillende syntaxis: syntaxis van queryexpressie en op methoden gebaseerde querysyntaxis. De syntaxis van query-expressies is nieuw in C# 3.0 en Visual Basic 9.0 en bestaat uit een set componenten die zijn geschreven in een declaratieve syntaxis die vergelijkbaar is met Transact-SQL of XQuery. De .NET Framework Common Language Runtime (CLR) kan de syntaxis van de query-expressie zelf echter niet lezen. Daarom worden query-expressies tijdens het compileren vertaald naar iets dat de CLR begrijpt: methode-aanroepen. Deze methoden worden de standaardqueryoperators genoemd. Als ontwikkelaar hebt u de mogelijkheid om ze rechtstreeks aan te roepen met behulp van methodesyntaxis in plaats van querysyntaxis te gebruiken. Zie Querysyntaxis en methodesyntaxis in LINQ voor meer informatie.

Syntaxis van query-expressie

Queryexpressies zijn een declaratieve querysyntaxis. Met deze syntaxis kan een ontwikkelaar query's schrijven in een taal op hoog niveau die vergelijkbaar is met Transact-SQL. Met behulp van de syntaxis van query-expressies kunt u zelfs complexe filter-, volgorde- en groeperingsbewerkingen uitvoeren op gegevensbronnen met minimale code. Zie Basic Query Operations (Visual Basic) voor meer informatie. Zie de volgende onderwerpen voor voorbeelden die laten zien hoe u de syntaxis van de queryexpressie gebruikt:

Querysyntaxis op basis van methode

Een andere manier om LINQ op te stellen op entiteitenquery's is door op methoden gebaseerde query's te gebruiken. De querysyntaxis op basis van een methode is een reeks directe methode-aanroepen naar LINQ-operatormethoden, waarbij lambda-expressies als parameters worden doorgegeven. Zie Lambda-expressies voor meer informatie. Zie de volgende onderwerpen voor voorbeelden die laten zien hoe u syntaxis op basis van methoden gebruikt:

Zie ook