1

私は、かなり大規模なプロジェクトで ASP.NET MVC と Entity Framework を一緒に使用することについていくつかの調査を行ってきました。ほとんどの例では、.edmx ファイルを新しい DAL プロジェクトに移動することで、MVC プロジェクトから分離しています。このプロジェクトには、リポジトリとインターフェースも含まれています。

このアプローチは私には完全に理にかなっていますが、理解できないことが 1 つあります。MVC のモデルはどうでしょうか。ほとんどの例では、コントローラは DAL プロジェクトからのリポジトリ インターフェイスを直接アドレス指定するため、MVC モデルは使用されなくなりましたか? または、それらを使用し続けて、コントローラーにマップすることをお勧めしますか?

4

1 に答える 1

7

モデルには次の 2 種類があります。

  • ドメイン モデル
  • モデルを見る

ドメイン モデルは、ドメイン エンティティを表します。それらは、データベースから自動生成された EF クラスであるか、使用している WCF サービスから生成されたプロキシなどの他の場所から取得されたものである可能性があります。それらはドメイン層に存在する必要があります。

一方、ビュー モデルModelsは ASP.NET MVC プロジェクトのフォルダーに移動します。これらは、ビューごとに定義する特定のクラスです。コントローラー アクションは、DAL レイヤーにクエリを実行して 1 つ以上のドメイン モデルをフェッチし、このコントローラーからレンダリングする特定のビューに対して特に定義したビュー モデルをインスタンス化します。そのため、ビュー モデルは複数のドメイン モデルからの情報を保持できます (特定のビューでこのすべての情報が必要なためです)。次に、コントローラーはビューモデルをビューに渡して表示します。

于 2012-05-22T09:05:52.800 に答える