2011-10-21 24 views
1

小さな検索アプリケーションを実行するために、EF 4.0、エンティティへのlinq、VS 2010およびSQL Server 2005ストアドプロシージャを使用しています。私はEDMと必要な層を設計しました。プレゼンテーションレイヤーは、検索結果を適切に表示します。Entity Frameworkを使用したデータレイヤのデカップリング

ジレンマは、検索が異なるテーブルから読み込むのに十分柔軟でなければならないということです。たとえば、現在の検索では、アプリケーションはテーブルAから読み込みます。明日のアプリケーションでは、テーブルAとはまったく異なるカラム名を持つテーブルBを読み込む必要があります。0120表Bの列で、プレゼンテーション層に影響を与えません。

どのような提案/ポインタ/リンクをいただければ幸いです。

ご協力いただきありがとうございます。

答えて

3

私は、以下のリンクで説明されているデータ・リポジトリを使用して、IDataRepositoryおよびDataRepositoryクラスを示しています。また、あなたが)フェッチ()と(検索を使用して動的にデータをフェッチすることができますどのように私はあなたのデータからプレゼンテーション層を分離推薦

http://huyrua.wordpress.com/2010/07/13/entity-framework-4-poco-repository-and-specification-pattern/

、その作業はかなり細かい

1

を機能。必要に応じて異なるテーブル(エンティティ)から取り込むことができる汎用クラスを持つビジネスレイヤを作成します。

したがって、曜日に応じて、汎用クラス(または複数のクラス)は表A、表B、または表Xから取り込まれます。しかし、プレゼンテーション層はこれを認識せず、ジェネリッククラス。

これはさまざまな方法で設計できます。 1つの方法は、ジェネリッククラスを生成するためにエンティティが準拠しなければならないインタフェースを設計することです。したがって、テーブル構造が何であっても、汎用クラスを生成して検索結果として表示するには、その中のデータをインターフェイスにマップする必要があります。