この質問は何百万回もどこからでも聞かれましたが、私の問題には特異な答えではありませんでした。EF4で推奨されるn-tierアーキテクチャ
私の会社では、大規模な電子商取引Webサイトを扱い、アプリケーションをプレゼンテーション、BLL、DAL、アプリケーション固有のフレームワークおよびモデル(POCO)の階層に分割しています。階層を介してデータを保持して渡します。
データベースにアクセスするには、DAL層のデータアプリケーションブロックでコードを記述します。データはDataReaderからModelオブジェクトにマップされ、ModelオブジェクトはBLLおよびPresentation層に渡されます。
私はこれらの大きなアプリケーションでEF4を使用したいと思っていますが、切断されたモデルで作業したいと思います(実際にはそれが意味するものではありませんが、 。
したがって、これらの層にEF4を取り入れる最良の方法は何ですか?つまり、.edmxファイルをDAL層またはモデル層に配置する必要がありますか?自分のModelクラスを作成し、Entity Modelクラスから自分のModelクラスの1つにマップする必要がありますか?
ありがとうございます!
新しいアプリケーションを作成しているとします。私はEF4を使用したいと思いますが、そのモデルをすべての層に渡すことは望ましくありません(たとえば、Webサービスを介していくつかのものを公開すると、EF4モデルを呼び出し先に渡すのは涼しいと思います)。 Model階層にPOCOモデルを持ち、BLLを渡す前にDALでそれらを埋めるのは正しいことでしょうか?この場合、BLLはPOCOオブジェクトをDALに渡し、DALはPOCOオブジェクト内のデータをEF4モデルにマップする必要があります。これでいい?ありがとう! –
アプリケーションのサイズと寿命によって異なります。小さなアプリケーションでは、私はEFで生成されたモーダルを使用します。アプリケーションが大きくなるにつれて、これらのクラスをビジネス/エンティティレイヤーに移動する方がよいでしょう。より大きなアプリケーションでは、私はPOCOから始まり、EFを活用します。欠点はデザイナーのサポートの一部を失うことです。あなたが探しているのはCode-Firstです:http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx。 HTH –