型指定された DataSet のクエリ
アプリケーションのデザイン時に 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)