Share via


LINQ to SQL クエリ

更新 : November 2007

LINQ to SQL クエリは、LINQ クエリと同じ構文を使用して定義します。異なる点は、クエリ内で参照されるオブジェクトがデータベース内の要素に割り当てられるという点だけです。詳細については、「LINQ クエリの概要」を参照してください。

LINQ to SQL は、作成したクエリを同等の SQL クエリに変換し、それをサーバーに送って処理します。具体的には、アプリケーションは LINQ to SQL API を使用してクエリの実行を要求します。次に、LINQ to SQL プロバイダがクエリを SQL テキストに変換し、ADO プロバイダに実行を委任します。ADO プロバイダは、クエリの結果を DataReader として返します。LINQ to SQL プロバイダは、ADO の結果をユーザー オブジェクトの IQueryable コレクションに変換します。

この一般的な流れを次の図に示します。

クエリ実行の図
LINQ to SQL クエリ

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

.NET Framework 組み込み型のほとんどのメソッドと演算子には、SQL に直接対応する変換が用意されています。LINQ で変換できないものについては、ランタイム例外が発生します。詳細については、「SQL と CLR の型マッピング (LINQ to SQL)」を参照してください。

次の表は、LINQ クエリの項目と LINQ to SQL クエリの項目の類似点と相違点を示すものです。

項目

LINQ クエリ

LINQ to SQL クエリ

クエリを保持するローカル変数の戻り値の型 (シーケンスを返すクエリの場合)

ジェネリック IEnumerable

ジェネリック IQueryable

データ ソースの指定

From (Visual Basic) 句または from (C#) 句を使用

フィルタ処理

Where/where 句を使用

グループ化

Group…By/groupby 句を使用

選択 (投影)

Select/select 句を使用

遅延実行と即時実行

LINQ クエリの概要 を参照してください。

結合の実装

Join/join 句を使用

Join/join 句を使用できますが、AssociationAttribute 属性を使用する方が効果的です。詳細については、「リレーションシップを介したクエリの実行 (LINQ to SQL)」を参照してください。

リモート実行とローカル実行

 

詳細については、「クエリのリモート実行とローカル実行 (LINQ to SQL)」を参照してください。

ストリーミングとキャッシュ クエリ

ローカル メモリ シナリオでは適用なし

 

参照

概念

LINQ クエリの概要

クエリの基本操作 (LINQ)

クエリ操作での型の関係 (LINQ)

その他の技術情報

LINQ to SQL のクエリの概念