[ SPECIAL ]

Visual Studio 2012 / C#

Visual C# プログラミング

2014/07/11 Tomohiro Kumagai

□ ADO.NET Entity を使ってデータベースを簡単に操作する

C# で ADO.NET Entity Framework を利用すると、Microsoft Azure などの SQL データベースを通常のクラスオブジェクトを扱うようにして操作できるようになります。

具体的には Visual Studio 2013 の ADO.NET Entity Data Model 機能を使って、ADO.NET エンティティを作成します。エンティティには、データベース内のテーブルやストアドプロシージャを扱うためのクラスオブジェクトが自動生成されるので、それを通してデータベースを操作できます。うまく使うと SQL 文を意識せずにデータベース操作が行えるので便利です。

ここでは、プロジェクトに ADO.NET エンティティを登録する方法を紹介します。

ADO.NET エンティティを作成する

Visual Studio 2013 では「ソリューションエクスプローラー」から、ファイルを登録したいフォルダーで右クリックして、ポップアップメニューから「追加」→「ADO.NET Entity Data Model」を選択することで、プロジェクトに ADO.NET エンティティを作成できます。

メニューから「ADO.NET Entity Data Model」を選択すると、項目名を指定する画面が表示されます。ここで指定した名前が、新しく生成されるファイル名につけられます。

項目名を指定したら、生成するデータモデルに含めるエンティティの内容を選択します。

今回は Microsoft Azure 上にあるデータベースを使ってエンティティを生成しようと思うので、ここでは「データベースから生成」を選択しました。

すると次の画面では、エンティティを生成するのに使うデータベースに接続するための情報を指定する画面になります。

ここではプロジェクトに登録済みのデータベース接続文字列から接続先を選択できます。登録していない場合は、右側にある「新しい接続」ボタンから、データベースの接続情報を設定することも可能です。その下の選択肢では、エンティティ接続文字列にパスワードを含めるかどうかを指定します。今回はここにパスワード情報を含めて、それを使ってデータベースへ接続するようにしました。

いちばん下の「エンティティ接続設定に名前を付けて Web.Config に保存」にチェックを入れて、この設定に名前を付けます。ここで指定した名前が、このエンティティを扱う際に使用するクラスオブジェクトの名前になるようです。

 

最後に、接続したデータベースのどのオブジェクトをエンティティで扱えるようにするかを選択します。

ここで、エンティティに取り込みたいテーブルやビュー、ストアドプロシージャを選択して「完了」ボタンを押すと、それらがエンティティに取り込まれ、プログラムから扱えるようになります。

生成される Entity データモデルファイル

エンティティが生成されると、最初に指定した項目名がファイル名に付けられた edmx ファイルが生成されます。

このファイルの一員として、取り込むように指定したオブジェクトから自動生成されたファイルが登録されます。

テーブルは通常のクラスとして取り込まれ、プログラム内で自由にインスタンス化できます。データベースの読み書きを行いたいようなときは、エンティティクラスをインスタンス化して、それに対して操作します。ストアドプロシージャはエンティティクラスのメソッドとして取り込まれ、通常のメソッドを呼び出すようにして、簡単にストアドプロシージャを実行できます。

Entity データモデルファイルをデータベースと同期するには

Entity データモデルファイルを作成した後で、接続先のデータベースを更新した場合には、Entity データモデルファイルの内容を更新できるようになっています。

Entity データモデルファイルを更新するには、このファイルをダブルクリックすると開ける「モデルブラウザー」を使用します。ここのダイアグラムで右クリックして、ポップアップメニューから「データベースからモデルを更新」を選択します。

そうすると、このエンティティで扱うオブジェクトの情報が記された画面が表示されてきます。

既に登録済みのオブジェクトで、接続先のデータベースと内容に違いがあるものは、更新対象や削除対象として掲載されます。また、エンティティに登録されていないオブジェクトについては、このエンティティで新たに扱いたいものを選択できます。


[ もどる ]


 

カスタム検索

copyright © Tomohiro Kumagai @ EasyStyle G.K.
contact me: please from mail-form page.