Delen via


Gegevenssets met querytypen

Als het schema van de DataSet toepassing bekend is tijdens het ontwerptijd van de toepassing, raden we u aan om een getypte DataSet tabel te gebruiken bij het gebruik van LINQ naar DataSet. Een getypte DataSet klasse is een klasse die is afgeleid van een DataSet. Als zodanig neemt het alle methoden, gebeurtenissen en eigenschappen van een DataSet. Daarnaast biedt een getypte DataSet methode, gebeurtenissen en eigenschappen sterk getypt. Dit betekent dat u toegang hebt tot tabellen en kolommen op naam, in plaats van op verzameling gebaseerde methoden te gebruiken. Hierdoor zijn query's eenvoudiger en beter leesbaar. Zie Getypte gegevenssets voor meer informatie.

LINQ naar DataSet biedt ook ondersteuning voor het uitvoeren van query's via een getypt DataSet. Met een getypte DataSetmethode hoeft u de algemene Field methode of SetField methode niet te gebruiken om toegang te krijgen tot kolomgegevens. Eigenschapsnamen zijn beschikbaar tijdens het compileren omdat de typegegevens zijn opgenomen in de DataSet. LINQ naar DataSet biedt toegang tot kolomwaarden als het juiste type, zodat fouten die niet overeenkomen, worden gedetecteerd wanneer de code wordt gecompileerd in plaats van tijdens runtime.

Voordat u een query kunt uitvoeren op een getypte DataSet, moet u de klasse genereren met behulp van DataSet Designer in Visual Studio. Zie DataSets maken en configureren voor meer informatie.

Opmerking

In het volgende voorbeeld ziet u een query voor een getypte DataSetquery:

var query = from o in orders
            where o.OnlineOrderFlag == true
            select new { o.SalesOrderID,
                         o.OrderDate,
                         o.SalesOrderNumber };

foreach(var order in query)
{
    Console.WriteLine("{0}\t{1:d}\t{2}",
      order.SalesOrderID,
      order.OrderDate,
      order.SalesOrderNumber);
}
Dim orders = ds.Tables("SalesOrderHeader")

Dim query = _
       From o In orders _
       Where o.OnlineOrderFlag = True _
       Select New {SalesOrderID := o.SalesOrderID, _
                   OrderDate := o.OrderDate, _
                   SalesOrderNumber := o.SalesOrderNumber}

For Each Dim onlineOrder In query
 Console.WriteLine("{0}\t{1:d}\t{2}", _
 onlineOrder.SalesOrderID, _
 onlineOrder.OrderDate, _
 onlineOrder.SalesOrderNumber)
Next

Zie ook