Datové sady typu dotazu
Pokud je schéma známé v době návrhu DataSet aplikace, doporučujeme použít typ při DataSet použití LINQ to DataSet. Typd DataSet je třída, která je odvozena od DataSet. Proto dědí všechny metody, události a vlastnosti objektu DataSet. Typ navíc DataSet poskytuje metody, události a vlastnosti silného typu. To znamená, že k tabulkám a sloupcům můžete přistupovat podle názvu místo použití metod založených na kolekci. Díky tomu jsou dotazy jednodušší a čitelnější. Další informace naleznete v tématu Typové datové sady.
LINQ to DataSet také podporuje dotazování na typ .DataSet Při zadání DataSetnemusíte pro přístup k datům sloupců používat obecnou Field metodu ani SetField metodu. Názvy vlastností jsou k dispozici v době kompilace, protože informace o typu jsou zahrnuty v souboru DataSet. LINQ to DataSet poskytuje přístup k hodnotám sloupců jako správný typ, aby se chyby neshody typů zachytily při kompilaci kódu místo za běhu.
Než začnete dotazovat zadaný typDataSet, musíte třídu vygenerovat pomocí Návrháře datové sady v sadě Visual Studio. Další informace najdete v tématu Vytvoření a konfigurace datových sad.
Příklad
Následující příklad ukazuje dotaz nad typem 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