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

Viz také