TOPシステム開発> 第2回:LINQによるデータアクセス実装 (2/3)

次世代データアクセステクノロジー

次世代データアクセステクノロジー

第2回:LINQによるデータアクセス実装

著者:マイクロソフト  小高 太郎

公開日:2008/1/15(火)

開発環境の準備

はじめに、開発環境を構築しよう。必要なものは「Visual Studio 2008」「SQL Server 2005(Express Editionで可能)」である。

Visual Studio 2008は2008年2月よりパッケージの販売が行われる。したがって、開発環境を構築したい場合は、製品版もしくは無償で提供されているVisual Studio 2008 Express Edition日本語版(http://www.microsoft.com/
express/download/
)でも行うことが可能である。

LINQの使用は日本語版で可能であるが、後述のADO.NET Entity Frameworkの開発には、現時点(2007年12月現在)で英語版のみの対応なため、今回は英語版を使用する。また、SQL Server Express Editionについては、Visual Studio 2008のインストールにより同時にインストールされるため、それをそのまま使用する(ダウンロードセンターより別途入手してもよい)。

Visual Studio 2008は、画面の指示に従ってインストールする(今回はページの関係上割愛させていただく)。また今回は使用するデータベースとして、SQL Server 2000に付属されたサンプルデータベースである「pubs」を使用する。pubsは
http://msdn2.microsoft.com/ja-jp/library/ms143221.aspx」からダウンロードすることが可能である。

開発手順

では、実際に開発を行っていこう。まずVisual Studio 2008を起動し、「File → New → Project」から「ConsoleApplication」を選択する。言語に関しては、今回はC#を使用する。

起動するとスタートページが表示されるので、「Project → AddNewItem」を実行し、表示された「AddNewItem」ウィンドウで、「LINQ to SQL Classes」を選択し、dbmlファイルを追加する。このdbmlファイルに対して、LINQ to SQLで扱うエンティティを定義することになる。

dbmlファイルを追加するとデザイナーが表示されるので、サーバエクスプローラよりテーブルをドラッグする。今回はpubsデータベースのテーブルをすべて選択する。

ここで注意してほしいのだが、同じようにデザイナーにテーブルを追加するものとして「型付データセット」がある。型付データセットは一般的に「特定の画面」や「特定のビジネスロジック」で使用するテーブルをデザイナーに追加して作成するという考え方である。また作成した型付データセット自体も基本的には「特定の画面」と「特定のビジネスロジック」で専用に扱うものだ。

一方LINQ to SQLの場合、作成するdbmlは今回の例のように基本的にはプロジェクトに1つ作成すればよい。これはLINQのデータに対する変形が非常に柔軟であるからだ。つまり、プロジェクト内にある共通のdbmlに対して、そのシチュエーションに合わせてLINQを使用したデータの変形抽出を行い、画面やビジネスロジックの構築が可能だということである。

dbmlファイル定義
図1:dbmlファイル定義
(画像をクリックすると別ウィンドウに拡大図を表示します)

作成されたdbml内にあるtitleとは、テーブルから作成されたデータクラスだ。このtitleを使用したコレクションが「結果セット(=コレクションオブジェクト)」になる。今回の例では、コレクションオブジェクトがtitlesであり、これに対してLINQでクエリーを行うこととなる。

筆者の環境はVisual Studio 2008 Beta2(2007年10月時点)であったのだがこの環境ではtitlesテーブルをデザイナーにセットすると、データクラスの名前がtitleと単数形に変更される(図1)。そのためフィールド名としてあるtitleが、データクラスと名前の競合し、title1とリネームされるので注意していただきたい。 次のページ


前のページ  1  2  3  次のページ


マイクロソフト株式会社 小高 太郎
著者プロフィール
マイクロソフト株式会社  小高 太郎
ERP パッケージ開発に携わり、プログラマーからスタート。Microsoft Universityの講師を兼務、その後、SE、PM、管理職の道に進むも、縁あって2007年3月よりデベロッパー エバンジェリストに転身、現在は開発者向けに様々な技術訴求を行うべく活動中。


INDEX
第2回:LINQによるデータアクセス実装
  開発の視点でみるLINQ
開発環境の準備
  データの取得