簡単なデータ操作を可能にするLINQ

文:Tony Patton(TechRepublic) 翻訳校正:村上雅章・野崎裕子
2008-02-06 08:00:00
  • このエントリーをはてなブックマークに追加

 LINQ(.NET Language-Integrated Query:.NET統合言語クエリ)は、特にMicrosoftが.NETプラットフォームの最新リリース(手始めにC# 3.0とVisual Basic 9.0で対応)とVisual Studio 2008(関連英文記事)でそれを採用したことで、大きな注目を集めている。

 LINQは基本的に、SQLを用いることなく、開発者が自身の選んだ言語でのデータアクセスを可能にするものである。.NETプラットフォームのコンテキストにおいて、LINQは.NET Frameworkの拡張セットであり、言語に統合されたクエリ操作、セット操作、変換操作を含んでいる。現在はC#とVisual Basicにおいて、データ操作のためのクラスライブラリを用いることで、それら言語のシンタックスを自然なかたちで拡張している。

 LINQという名前において鍵となる単語はintegrated(統合)である。これは、開発者が自らの開発言語(現時点でLINQをサポートしているのはC#とVisual Basic)を用いたデータソースの処理が可能になるということを意味している。この統合によってSQLに精通する必要がなくなるため、開発者はバックエンドのデータ処理に好きなプログラミング言語を使用することができるわけだ。

 LINQはバックエンドにあるどのようなデータソースでも処理できるよう設計されているため、開発者はVisual Studio 2008といった、自らが使用する統合開発環境(Integrated Development Environment:IDE)の持つ多くのメリットを享受することができる。これによって、外部データにアクセスするコードに対するコンパイル時のシンタックスチェックや静的な型付け、コードアシスト(これらはSQL Server Enterprise Managerのような外部ツールを使用する場合には使えない機能である)を行えるようになる。

 Microsoftは以下のような3種類の実装を用意している。

  • LINQ to Object:メモリ内にあるデータの検索および操作を行う。
  • LINQ to ADO.NET:これには3つのバリエーションがある。すなわち、オブジェクトのリレーショナルマッピングを実装したLINQ to SQL(リレーショナルデータを処理する。サポートはSQL Serverのみ)と、LINQ to DataSet(ADO.NETのデータセットを処理する)と、LINQ to Entities(MicrosoftのORMソリューション)である。
  • LINQ to XML:XMLデータソースの検索および操作を行う。

 LINQのこういった3つの機能はさまざまな.NETクラスライブラリを通じて提供されている。

  • 新着記事
  • 特集
  • ブログ