Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om schemat för DataSet är känt vid programdesign rekommenderar vi att du använder en typad DataSet när du använder LINQ till DataSet. Ett DataSet är en typ av klass som härleds från en DataSet. Därför ärver den alla metoder, händelser och egenskaper för en DataSet. Dessutom tillhandahåller en typad DataSet starkt typade metoder, händelser och egenskaper. Det innebär att du kan komma åt tabeller och kolumner med namn i stället för att använda samlingsbaserade metoder. Detta gör frågor enklare och mer läsbara. Mer information finns i Typade datauppsättningar.
LINQ till DataSet har också stöd för frågning över en typad DataSet. Med ett skrivet DataSetbehöver du inte använda den generiska Field metoden eller SetField metoden för att komma åt kolumndata. Egenskapsnamn är tillgängliga vid kompileringstillfället eftersom typinformationen DataSetingår i . LINQ till DataSet ger åtkomst till kolumnvärden i rätt typ, så att typfelsmatchningar fångas när koden kompileras i stället för vid körning.
Innan du kan börja ställa frågor mot en typad DataSet, måste du generera klassen med hjälp av DataSet Designer i Visual Studio. Mer information finns i Skapa och konfigurera datauppsättningar.
Exempel
I följande exempel visas en fråga över ett skrivet DataSet:
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