Visual Basic Express での LINQ の使用

更新 : 2007 年 11 月

アプリケーションでは、SQL データベースまたは XML ドキュメントのデータを使用することがよくあります。これまで開発者は、このようなデータを処理するために、SQL や XQuery などの言語を別に習得する必要がありました。統合言語クエリ (LINQ: Language-Integrated Query) では、Visual Basic 言語自体にクエリ機能が組み込まれているため、まったく異なるクエリ言語を開発者が習得する必要はありません。Visual Basic に関する既存の知識と共に、多少の新しいキーワードや概念を使用することで、SQL データベース、ADO.NET データセット、XML ドキュメント、および IEnumerable インターフェイスを実装するすべての .NET Framework コレクション クラスを照会できます。

LINQ の利点

  • 使い慣れたクエリ作成構文

  • 構文エラーとタイプ セーフに対応したコンパイル時のチェック

  • デバッガ サポートの強化

  • IntelliSense のサポート

  • W3C のドキュメント オブジェクト モデル (DOM: Document Object Model) の要件に対応して XML 要素を直接操作する機能 (コンテナとなる XML ドキュメントの作成は不要)

  • 強力で XPath や XQuery よりも使いやすいインメモリ XML ドキュメント変更

  • 強力なフィルタ処理、並べ替え、およびグループ化の機能

  • さまざまな種類のデータ ソースおよび形式のデータを操作できる一貫したモデル

LINQ クエリの作成

ADO.NET データセット、SQL データベース、.NET Framework コレクション、または XML ドキュメントのどれを使用している場合でも、LINQ クエリの基本構造は同じです。クエリ式は From 句で始まり、その後に Where や Select などのクエリ句が続きます。完成した式はクエリ変数に格納され、何回でも実行または変更できます。クエリ式の構文は SQL の構文に似ています。たとえば、次の構文を使用すると、学生データベースから専攻が科学の学生をすべて返す LINQ クエリを作成できます。

Dim StudentQuery = From student in studentApp.students 
    Where student.Major = "Science" _
    Select student

詳細については、「クエリ (Visual Basic)」および「初めての LINQ クエリの作成 (Visual Basic)」を参照してください。

LINQ クエリには、3 つの基本的なステージがあります。つまり、データ ソースを取得し、クエリ式を定義して、クエリを実行します。詳細については、「初めての LINQ クエリの作成 (Visual Basic)」を参照してください。

LINQ to Objects

LINQ to Objects という用語は、LINQ を使用して IEnumerable をサポートするインメモリ データ構造を照会することを意味します。詳細については、「LINQ to Objects」を参照してください。

LINQ to SQL

O/R デザイナによって作成した厳密に型指定されたオブジェクトの層を通じて、SQL Server データベースおよび SQL Server Express データベースにアクセスするには、LINQ to SQL を使用します。

O/R デザイナを使用すると、LINQ to SQL クラスをデータベース内のテーブルにマップし、アプリケーション内のコントロールにデータをバインドする LINQ クエリを作成できます。たとえば、次の LINQ クエリは、LINQ クエリの結果 (米国のすべての顧客) を DataGridView コントロールのバインディング ソースにバインドします。

Dim CustomersQuery = From customers in NorthwindSampleDataContext1.Customers _
    Where customers.Country = "US" _
    Select customers

CustomerBindingSource.DataSource = CustomersQuery

詳細については、「LINQ to SQL」、「O/R デザイナの概要」、「LINQ to SQL クラスの作成 : O/R デザイナの使用」、および「コントロールにデータをバインドするための LINQ の使用」を参照してください。

Bb531268.alert_note(ja-jp,VS.90).gifメモ :

O/R デザイナでは、SQL Server Compact 3.5 データベースは現在サポートされていません。SQL Server Express Edition の入手方法については、「方法 : サンプル データベースをインストールする」の「SQL Server Express Edition の入手」を参照してください。

LINQ to DataSet

アプリケーション内のコントロールにデータをバインドするには、DataSet を使用します。データベースに直接接続する代わりに、DataSet を使用してデータのオフライン キャッシュを作成し、それをアプリケーションで使用できます。オフライン キャッシュには、複数のデータ ソースのサブセットを含めることができます。アプリケーションがオンラインになったら、DataSet の変更でデータベースを更新できます。

LINQ to DataSet を使用すると、DataSet で使用できるフィルタ処理メソッドや並べ替えメソッドよりもすばやく簡単に、キャッシュされたデータを照会できます。詳細については、「LINQ to DataSet」を参照してください。

LINQ to XML

LINQ to XML では、XPath または XQuery を知らなくても、LINQ クエリ式を使用することで XML ドキュメントを簡単に作成および変更できます。LINQ to XML は、W3C DOM ではなく最新のプログラミング構成要素を使用する、XML 用の新しいインメモリ API です。詳細については、「Visual Basic における LINQ to XML の概要」、「XML のコード内への直接配置 : XML リテラルの使用」、および「Visual Basic の統合言語軸 (LINQ to XML)」を参照してください。

参照

概念

概要 (LINQ to SQL)

その他の技術情報

Visual Basic の LINQ の概要

はじめに (LINQ to DataSet)

はじめに (LINQ to XML)