次の方法で共有


LINQ to SQL クエリ

LINQ to SQL クエリは、LINQ と同じ構文を使用して定義します。 唯一の違いは、クエリで参照されるオブジェクトがデータベース内の要素にマップされていることです。 詳細については、「 LINQ クエリの概要 (C#)」を参照してください。

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

.NET Framework 組み込み型のほとんどのメソッドと演算子には、SQL への直接変換があります。 LINQ で変換できない場合は、実行時例外が生成されます。 詳細については、「 SQL-CLR 型マッピング」を参照してください。

次の表に、LINQ クエリ 項目と LINQ to SQL クエリ 項目の類似点と相違点を示します。

アイテム LINQ クエリ LINQ to SQL クエリ
クエリを保持するローカル変数の戻り値の型 (シーケンスを返すクエリの場合) ジェネリック IEnumerable ジェネリック IQueryable
データ ソースの指定 From (Visual Basic) または from (C#) 句を使用します 同じ
フィルタリング Where / where句を使用します 同じ
グルーピング Group…By / groupby句を使用します 同じ
選択 / 投影 Select / select句を使用します 同じ
遅延実行と即時実行 LINQ クエリの概要を参照してください (C#) 同じ
結合の実装 Join / join句を使用します Join / join句を使用できますが、AssociationAttribute属性をより効果的に使用できます。 詳細については、「 リレーションシップ間のクエリ」を参照してください。
リモート実行とローカル実行 詳細については、「 リモート実行とローカル実行」を参照してください。
ストリーミングとキャッシュされたクエリ ローカル メモリのシナリオでは適用されません

こちらも参照ください