私はASP.NET MVCを初めて使い慣れており、現時点ではいくつかの設計コンセプトについて頭を下ろそうとしています。私が現在取り組んでいることの1つは、以下のような状況をどのように処理するか(最善の方法)です。MVCパーシャルビュー、モデルなど
複数の「セクション」をレンダリングする必要があるページがあるとします。たとえば、左側にはデータ駆動型のリストがあり、リスト内の選択された項目はページ上の別のセクションに表示されます。理解を深めるために、左側のリストは映画カテゴリのリストであり、もう一方のリストは様々な映画の詳細とともに、そのカテゴリに含まれる映画のリストを表示することを示唆させる。
ここでは、Entity Framework、LINQ to SQL、またはtblCategoryおよびtblMovieデータベーステーブルをそれぞれカテゴリとムービーエンティティにマップする何らかの形式のORMがあります。これらのエンティティは、MyMVCApp.Data.Entities名前空間に存在します。次に、MyMVCApp.Data名前空間にあるリポジトリパターンを使用して、これらのエンティティに対するクエリ(LINQ経由)をカプセル化し、モデルエンティティを返します。
これは私の最初の質問にあります。リポジトリはビューモデルエンティティまたはドメインエンティティを返すべきですか?それからビューモデルエンティティを生成するために拡張されますか?私の素朴な考え方では、ORMから返されたエンティティは、ビジネスロジックを含むドメインエンティティを持つデータのコンテナであることがわかります。だから確かにここに禁欲があるはずですか?
とにかく、私のシナリオに戻ってください。ここで、この冒頭で説明した2つのセクションを提示したいと考えてみましょう。私はここで何が起こっている必要があると仮定しています私のドメインエンティティモデルは、カテゴリのリストと関連付けられている映画が含まれています。 Listのようなものなので、それぞれListを含んでいます。
このモデルはどこかに入力されていました。これは私の2番目の質問です。上記の私の仮定は正しいと単純に、データエンティティはORMから返されます。今度は、前の段落で言及したムービーやカテゴリエンティティなどのドメインエンティティを持つMyMVCApp.Core.Model(または同様のもの)という名前空間/プロジェクトがあります。これらのエンティティには、ORMからデータを取得してデータを取り込むためのメソッドがありますか?あるいは、リポジトリは、これらの移入されたエンティティモデルを取得しますか? ORMにMovieエンティティとCustomerエンティティがある場合、この部分のもう1つの質問は、同じ名前のドメインエンティティを持つことは容認できますか?
最後に、コントローラに、カテゴリとムービーオブジェクトのこのポピュレートされたリストがあり、それをビューに戻すと仮定します。私はそれが部分的なビューとして最初に記載されたセクションのそれぞれを持って、それぞれに人口モデルを渡すことをお勧めしますか?したがって、Populated CategoryMoviesエンティティを取得し、これをCategory部分ビューとMovies部分ビューに渡すIndexControllerである可能性があります。私は何とか選択したカテゴリ(quesrystring?)を決定し、ビュー内のそのカテゴリの適切なムービーリストを表示する必要があります。
だから誰でも私の話題でこの点に着いているなら、私は深い弓をとるだろう。私は、誰かがある種の啓蒙を提供するのに十分なほど詳細な考えと質問が混在していることを説明してくれることを願っています。
お寄せいただきありがとうございます! :-)