.NET Framework 4.5 におけるデータ アクセスの概要 その 4 ~ LINQ ~

概要編 全体像 ADO.NET ADO.NET Entity Framework LINQ 応用編 ADO.NET Entity Framework 全体像 DBファースト、モデルファースト LINQ (Language Integrated Query) は、.NET Framework 3.5 で導入された革新的な機能で、オブジェクトの世界とデータの世界の間の橋渡しをするものです。 従来、データに対するクエリは単純な文字列として表され、コンパイル時の型チェックや IntelliSense のサポートは利用できませんでした。 また、RDB、XML 、.NET コレクションオブジェクト、Web サービスなど、データ ソースの種類に従って異なるクエリ言語を習得する必要がありました。 LINQを用いることでデータソースの種類に関わらず、一貫したSQL ライクな構文を用いて、完全な型チェックと IntelliSense のサポートが有効になります。LINQが扱うデータソースは非常に多岐にわたりますが、実際にLINQが直接扱うものは.NETのオブジェクトになります。したがって異なるデータソースを扱うには専用のデータプロバイダが必要になります。このデータプロバイダがデータソースの差異を吸収(.NETのオブジェクトに変換)してくれるため、LINQはデータソースの種類にかかわらず同じ構文でデータを操作することができるのです。 LINQライブラリにはデフォルトで5つのプロバイダが提供されています。これにはddADO.NETや、ADO.NET Entity Frameworkの オブジェクトが含まれます。加えて LINQ で扱うことの出来るデータソースは、RDBに関連するものばかりではありません。例えば、LINQ to Objectsは、LINQのデータソースとして.NETオブジェクトを扱うためのものですし、LINQ to XMLはXMLドキュメントをデータソースとして扱うものです。つまり、LINQはデータベース処理のみでなく、プログラムのあらゆる場面で有効で、それまでの処理に対して補完的な立ち位置であることを意味します。                                                       図3 LINQ全体像 x 1: int[] numbers = new int[7] { 0,…