型指定された DataSet のクエリ

更新 : November 2007

アプリケーションのデザイン時に DataSet のスキーマがわかっている場合は、LINQ to DataSet を使用するときに、型指定された DataSet を用いることをお勧めします。型指定された DataSet とは、DataSet から派生するクラスのことです。したがって、型指定されたデータセットは DataSet のすべてのメソッド、イベント、およびプロパティを継承します。さらに、型指定された DataSet には、厳密に型指定されたメソッド、イベント、およびプロパティが用意されています。つまり、コレクションベースのメソッドを使用せずに名前でテーブルおよび列にアクセスできます。これによりクエリが簡素化され、読みやすくなります。詳細については、「型指定されたデータセット (ADO.NET)」を参照してください。

LINQ to DataSet は、型指定された DataSet に対するクエリもサポートしています。型指定された DataSet を使用した場合、ジェネリック メソッドの Field または SetField を使って列データにアクセスする必要はありません。DataSet に型情報が含まれているため、プロパティ名をコンパイル時に利用できます。LINQ to DataSet では、列の値に適切な型としてアクセスすることが可能となるため、型の不一致エラーは実行時ではなくコードのコンパイル時にキャッチされます。

型指定された DataSet に対してクエリを実行するには、Visual Studio 2008 のデータセット デザイナを使用してあらかじめクラスを生成しておく必要があります。詳細については、「方法 : 型指定されたデータセットを作成する」を参照してください。

次の例では、型指定された 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

参照

概念

DataSet のクエリ (LINQ to DataSet)

複数テーブルにまたがるクエリ (LINQ to DataSet)

単一テーブルのクエリ (LINQ to DataSet)