![]() |
特集:C#プログラマーのためのLINQ超入門(前編)LINQ(リンク)の基礎知識デジタルアドバンテージ 遠藤 孝信2008/03/25 |
|
|
Visual Studio 2008(以下、VS 2008)にはさまざまな新機能が追加されていますが、最大の新機能といえばやはり「LINQ」(「リンク」と読みます)でしょう。
LINQとは、
Language INtegrated Query
の略で「統合言語クエリ」と訳されますが、もう少し分かりやすくいい換えれば、
言語(C#やVisual Basicなど)のコード内に記述できるクエリ
となります。クエリとは「問い合わせ」です。開発でクエリといえばデータベース検索に使われるSQL文が代表的ですが、LINQではSQL文に似た構文によりクエリを記述し、データベースをはじめ、さまざまな対象から、データの検索や集計、取得などが可能になります。
LINQによるクエリをコード内に記述できるようにするため、C#やVisual Basicは拡張されバージョン・アップしています。LINQが利用可能な言語は、Visual Studio 2008とともに登場した.NET Framework 3.5に含まれるC# 3.0(以降、単に「C#」)やVisual Basic 2008(=Visual Basic 9.0)です。また.NET Framework 3.5のクラス・ライブラリには、LINQのクエリを実行するのに必要なクラス群が追加されています。
本稿ではC#プログラマーの方に向けて、LINQを使ううえで最低限必要な知識を分かりやすく解説していきます。これからLINQを学ぼうという方の最初の一歩となれば幸いです。
LINQで記述された問い合わせ
まずはLINQにより、これまで記述していたデータベースの問い合わせのためのC#のコードがどのように変化するのかを見ていきます。
■ADO.NET+SQL文によるデータベースへの問い合わせ
.NETでデータベースのクエリというと、これまではADO.NETのフレームワーク(クラス・ライブラリ)を使って行っていました。これは例えば次のようなコードになります。
| |
| リスト1 ADO.NETによるデータベースの検索 |
このサンプル・プログラムを実行するには、まずVS 2008でコンソール・アプリケーションのプロジェクトを新規作成します。次にサンプルのデータベース・ファイルである「NORTHWND.MDF」をソリューション・エクスプローラのプロジェクト名の部分にドラッグ&ドロップしてください。NORTHWND.MDFの入手については「連載:Visual Studio 2005によるWindowsデータベース・プログラミング 第4回」で解説しています。これによりデータソース構成ウィザードが起動しますが[キャンセル]ボタンをクリックしてキャンセルしてください。そしてリスト1のコードを入力します。
リスト1のSQL文では、Ordersテーブルから、ShipCountry列の値が「Norway」のレコードを選択し、そのレコードの4つの列の値を取得しています。ADO.NETによるプログラミングに関しては、「連載:ADO.NET基礎講座 第2回 .NETデータ・プロバイダによるデータベースのアクセス Page2」を参照してください。
リスト1の実行結果は次のようになります。
| |
| リスト1の実行結果 |
さて、リスト1で示したコードは、ADO.NETを利用したデータベース・プログラミングの基本的なコードといえますが、SQL文の記述に関しては次のような問題点があります。
- SQL文を文字列で記述しなければならず、その構文が正しいかどうかは実行するまで分からない(コンパイル時に構文エラーを検出できない)
- SQL文の記述時にIntelliSense機能で列名を自動補完できないため不便
例えばテーブルの列名のスペルを間違ったとしても、それは実行時にSQL文が送信されるまでエラーになりません。LINQはまずこれらの問題を解決してくれます。
| INDEX | ||
| C#プログラマーのためのLINQ超入門(前編) | ||
| LINQ(リンク)の基礎知識 | ||
| 1.ADO.NET+SQL文によるデータベースへの問い合わせ | ||
| 2.LINQによるデータベース/コレクションへの問い合わせ | ||
| 3.クエリの実行を支えるさまざまなLINQプロバイダ/LINQの書き方 | ||
| 4.そのほかのポイント/LINQPadの紹介 | ||
| C#プログラマーのためのLINQ超入門(後編) | ||
| LINQによるデータベース・アクセスとO/Rマッピング | ||
| 1.LINQのメソッド構文 | ||
| 2.データベースの問い合わせを行うLINQ to SQL | ||
| 3.O/RマッピングとLINQ to SQL | ||
TechTargetジャパン
- Kinectが切り開く“夢の近未来” (2012/2/2)
日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか? - 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する - SQL Azure Data Sync入門 (2012/1/30)
SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説 - Windows Phoneアプリ市場の現状を分析する (2012/1/27)
Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


