Skip to main content

言語統合クエリとは何ですか?

言語統合クエリ(LINQ)は、宣言的クエリ構文を主にC#とVB.NETにシームレスに統合する機能を提供します。LINQの開発は、クエリを実行するときに発生したオブジェクト指向の環境で作業している開発者の問題を解決しました。Microsoft&Reg;の一部として紹介されました。.NETフレームワークバージョン3.5 2007年11月、Visual Studio&Reg;コードネームorcas。

言語統合クエリを作成する前に、.NET言語にはリレーショナルデータベースまたはXMLドキュメントを照会するネイティブの方法がありませんでした。これらの言語で執筆している開発者は、それぞれSQLまたはXQueryを文字列として埋め込み、結果のデータを.NETオブジェクトに手動でマッピングする必要がありました。埋め込まれたクエリ文字列とマッピングは.NETコンパイラによって検証できず、実行時に潜在的なエラーを発見できます。ネットオブジェクト。通常、開発者はソースコレクション全体を繰り返し、検索基準に基づいて新しい結果コレクションを構築します。開発者は、結果コレクションを構築しながらデータを変換することもできます。このアプローチは面倒でした。C#またはVBで記述された単純な選択クエリは、少なくとも5行のコードを必要としますが、同じクエリではクエリ言語で1行のコードが必要です。linqを作成します。LINQは、静的タイプチェックを備えたC#またはVBでインラインで使用されるSQLを連想させるクエリ構文を提供します。.NETコレクションをクエリするとき、ネストされたループを使用する代わりに、開発者はLINQ構文を使用してアイテムを選択してデータを変換できます。他の利点の中でも、これにより、純粋にオブジェクト指向の構文と比較して、コードの行が少なくなります。external外部データソースにアクセスするとき、LINQとサポートコンポーネントは、.NET言語自体内に埋め込まれたクエリ言語とデータマッピングの必要性を削除します。データマッピングを実行するために、LINQはLINQプロバイダーと呼ばれるコンポーネントに依存します。LINQ-to-Objectsは、LINQが.NETコレクションにアクセスできるようにするストックプロバイダーです。同様に、リレーショナルデータベースとXMLドキュメントにアクセスするプロバイダーがあります。これらのプロバイダーのほとんどは、.NETフレームワークに含まれていないサードパーティコンポーネントです。使用するプロバイダーに関係なく、すべてのクエリは同じLinq構文を使用します。これらのオペレーターは、フィルタリング、順序付け、理論操作の設定、集約などのタスクを実行します。これらの演算子は.NETフレームワークの一部であるため、開発者が選択した場合、LINQなしで使用することもできます。