2016-04-08 8 views
0

私は4層(プロジェクト)のソリューションを持っています。4層プロジェクトでMVCドメインモデルを使用するには?

  1. Entity Frameworkのレイヤー(EFL)
  2. データアクセス層(DLL):CRUD操作やクエリのすべて。
  3. ビジネスロジックレイヤー(BLL):DLLメソッドを呼び出し、ビジネスを追加します。
  4. MVCレイヤーは

私は、私は別のEFL層を持っており、このために私はMVCにモデルのメリットを利用するにはどうすればよいかわからない言ったように?たとえば、データベースからモデルを再度生成すると、恐らくそれらが削除されるため、<required><Display(Name:="username:")>などの検証アノテーションをEFLレイヤーに書き込むことはできません。 MVCのModelフォルダをどうすれば使えますか?

EFLクラスと同じクラスを作成する場合、これらのクラスを相互に変換するために膨大なコードを書く必要があります。

どのような構造体としてMVCモデルを使用できますか? Entity Frameworkクラスと組み合わせることができますか?

+0

はいModelフォルダにModelクラスを記述する必要があります – Dilip

答えて

1

MVCのMはビューモデルです。つまり、ビューに使用されるエンティティ(ビューに最適化されたエンティティ)が含まれています。ビジネスレイヤから受け取ったエンティティに基づいてコントローラに構築され、ビューモデルのエンティティとはまったく異なって見える可能性があります。

1

は、以下の質問について考えてみよう:それはあなたが他のいくつかの持続性/ ORMメカニズムのためのEFを変更するということです

  • どのように可能性が高いですか?
  • 別のフロントエンドテクノロジに変更する、または追加する可能性はどのくらいありますか?

あなたの回答がこれらの変更である可能性がある場合は、フレームワーク仕様を分離する必要があります。これを行うには、フレームワークに中立な概念を持つ一連の基本クラスを作成し、必要に応じて追加または削除できるフレームワーク固有の派生クラスを作成します。例えば。 EfCustomerまたはHibernateCustomerRepository

これらの変更がそうでない場合は、レイヤ化されたアプローチが実際に提供する価値について疑問に思うでしょうし、フレームワーク固有の概念でクラスを装飾することについても心配しません。できるだけシンプルでドライなものを保つことを目指します。

関連する問題