Abfragen von typisierten DataSets

Aktualisiert: November 2007

Wenn zum Zeitpunkt der Anwendungskonzeptionierung bereits das DataSet-Schema bekannt ist, wird empfohlen, bei der Benutzung von LINQ to DataSet mit einem typisierten DataSet zu arbeiten. Ein typisiertes DataSet ist eine Klasse, die von einem DataSet abgeleitet ist. Damit erbt sie alle Methoden, Ereignisse und Eigenschaften eines DataSet. Darüber hinaus stellt ein typisiertes DataSet stark typisierte Methoden, Ereignisse und Eigenschaften bereit. Das heißt, dass Sie auf Tabellen und Spalten anhand ihres Namens zugreifen können und keine auflistungsbasierten Methoden verwenden müssen. Dadurch werden Abfragen einfacher und lesbarer. Weitere Informationen dazu finden Sie unter Typisierte 'DataSets' (ADO.NET).

LINQ to DataSet unterstützt auch das Abfragen von Daten in einem typisierten DataSet. Bei Verwendung eines typisierten DataSet brauchen Sie nicht auf die generische Methode Field bzw. SetField zurückgreifen, um auf Spaltendaten zugreifen zu können. Eigenschaftennamen sind zum Zeitpunkt der Kompilierung verfügbar, weil die Typinformationen im DataSet enthalten sind. LINQ to DataSet bietet Zugriff auf Spaltenwerte als korrektem Typ, sodass Fehler wegen nicht zusammenpassender Typen bereits bei der Kompilierung und nicht erst zur Laufzeit erkannt werden.

Bevor Sie mit der Abfrage eines typisierten DataSet beginnen können, müssen Sie die Klasse mithilfe des DataSet-Designers in Visual Studio 2008 generieren. Weitere Informationen dazu finden Sie unter Gewusst wie: Erstellen eines typisierten Datasets.

Beispiel

Im folgenden Beispiel wird eine Abfrage von Daten in einem typisierten DataSet veranschaulicht:

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

Siehe auch

Konzepte

Abfragen von 'DataSets' (LINQ to DataSet)

Abfragen für mehrere Tabellen (LINQ to DataSet)

Abfragen für eine einzelne Tabelle (LINQ to DataSet)