2010-11-20 19 views
2

この質問は何百万回もどこからでも聞かれましたが、私の問題には特異な答えではありませんでした。EF4で推奨されるn-tierアーキテクチャ

私の会社では、大規模な電子商取引Webサイトを扱い、アプリケーションをプレゼンテーション、BLL、DAL、アプリケーション固有のフレームワークおよびモデル(POCO)の階層に分割しています。階層を介してデータを保持して渡します。

データベースにアクセスするには、DAL層のデータアプリケーションブロックでコードを記述します。データはDataReaderからModelオブジェクトにマップされ、ModelオブジェクトはBLLおよびPresentation層に渡されます。

私はこれらの大きなアプリケーションでEF4を使用したいと思っていますが、切断されたモデルで作業したいと思います(実際にはそれが意味するものではありませんが、 。

したがって、これらの層にEF4を取り入れる最良の方法は何ですか?つまり、.edmxファイルをDAL層またはモデル層に配置する必要がありますか?自分のModelクラスを作成し、Entity Modelクラスから自分のModelクラスの1つにマップする必要がありますか?

ありがとうございます!

答えて

0

EFxは現在の形式(バージョン4)で、緑地のアプリケーションに最適です。

確立されたアプリケーションでは、EFが生成したモデルを使用しました。これはデータレイヤーに配置されていました。このため、アプリケーションのすべてのレイヤーでデータレイヤーを参照する必要がありました。理想的ではありませんが、うまく機能しまし

アプリケーションのサイズと複雑さによって異なりますが、単純なCRUD操作ではEFを使用しました。複雑なクエリの場合、データベースに保存することを選択しました。

+0

新しいアプリケーションを作成しているとします。私はEF4を使用したいと思いますが、そのモデルをすべての層に渡すことは望ましくありません(たとえば、Webサービスを介していくつかのものを公開すると、EF4モデルを呼び出し先に渡すのは涼しいと思います)。 Model階層にPOCOモデルを持ち、BLLを渡す前にDALでそれらを埋めるのは正しいことでしょうか?この場合、BLLはPOCOオブジェクトをDALに渡し、DALはPOCOオブジェクト内のデータをEF4モデルにマップする必要があります。これでいい?ありがとう! –

+1

アプリケーションのサイズと寿命によって異なります。小さなアプリケーションでは、私はEFで生成されたモーダルを使用します。アプリケーションが大きくなるにつれて、これらのクラスをビジネス/エンティティレイヤーに移動する方がよいでしょう。より大きなアプリケーションでは、私はPOCOから始まり、EFを活用します。欠点はデザイナーのサポートの一部を失うことです。あなたが探しているのはCode-Firstです:http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx。 HTH –

関連する問題