連載:ADO.NET Entity Framework入門第6回 EF4によるN層アーキテクチャと自己追跡エンティティ【前編】WINGSプロジェクト 土井 毅 著/山田 祥寛 監修2010/12/03 |
|
|
自己追跡エンティティを使った3層アーキテクチャ・サンプル
さて、ここからは自己追跡エンティティを使った3層アーキテクチャによるサンプルを構築しながら説明を進めていこう。
作成するのは図4のような、Silverlightのクライアントと、それが通信するサーバのサンプルである。クライアントは、サーバから読み込んできたエンティティの内容をDataGridコントロールに表示でき、また、編集した修正内容をサーバに送信することができる、というものである。
図4 作成した3層アーキテクチャ・サンプル |
[Load]/[Save]ボタンでサーバに対してデータを読み取り/保存が可能 |
小さなサンプルではあるが、自己追跡エンティティがN層アーキテクチャにおいて、どのような役割を果たすのかをしっかり理解していきたい。
■各プロジェクトと用いる技術
今回はプロジェクトを3つに分割しており、各プロジェクトは図5のような関係となっている。
図5 3層アーキテクチャ・サンプルとそれぞれの役割 |
クライアント・サイドではSilverlight 4を使用する。Visual Studio 2010は標準ではSilverlight 4に対応していないため、あらかじめ以下のURLより「Microsoft Silverlight 4 Tools for Visual Studio 2010」をダウンロードしてインストールする必要がある。
なお、このサンプルは必要な手順が多いため、今回は自己追跡エンティティの生成と、生成されたソース・コードの確認までとし、次回でWCFによるサービス公開とクライアントの実装を行うこととする。また、以降の画面はC#環境を前提としているが、Visual Basicの場合もほぼ同様である。
■自己追跡エンティティの作成
まずは自己追跡エンティティを作成しよう。データアクセスを行うAddressBookDataプロジェクトをクラス・ライブラリとして作成する。
図6 データアクセス用プロジェクトをクラス・ライブラリとして作成 |
EDMの定義については、これまでのモデルを流用することにする。[プロジェクト]−[既存項目の追加]から、前回までに作成してきたAddressBook.edmxをプロジェクトに追加する(図7)。
図7 AddressBook.edmxをプロジェクトに追加 |
それでは、POCOによるエンティティ・クラスの場合と同様に、EDMから自己追跡エンティティを自動生成しよう。なお、前回とは異なり、自己追跡エンティティは拡張機能ではなく、Visual Studio 2010標準でサポートされている。
まず、ADO.NET Entity Data Modelツール上で右クリックし、図8のように[コード生成項目の追加]を選択する。
図8 [コード生成項目の追加]を選択 |
表示された[新しい項目の追加]ダイアログ(図9)では、EDMからコードを生成する方法を選択できるので、[ADO.NET Self-Tracking Entityジェネレーター]を選択する。
図9 「ADO.NET Self-Tracking Entityジェネレーター」 |
「ADO.NET Self-Tracking Entityジェネレーター」では、POCOによるエンティティ・クラスの場合と同様に、T4テンプレートにより、図10のようなファイル群が自動生成される。
図10 生成されたファイル群(C#) |
拡張子「.tt」はT4テンプレート・ファイルを示す。 |
POCOによるエンティティ・クラスの場合と同様、エンティティ・クラスとオブジェクト・コンテキストが生成される。
INDEX | ||
ADO.NET Entity Framework入門 | ||
第6回 EF4によるN層アーキテクチャと自己追跡エンティティ【前編】 | ||
1..NETでの3層アーキテクチャ/変更履歴管理とは/自己追跡エンティティとは | ||
2.自己追跡エンティティを使った3層アーキテクチャ・サンプル | ||
3.自己追跡エンティティの実装を確認/【コラム】自己追跡エンティティはPOCO? | ||
「ADO.NET Entity Framework入門」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|