2

まず、EFをDalレイヤーに使用します(MVCから分離されたプロジェクト、同じソリューション)。EF の EDMX ファイルから生成されたモデルは、モデルレイヤーからの実際のモデルですか?? もしそうなら、MVC のビューレイヤーで動作するようにこれらのモデルにアクセスするにはどうすればよいですか? ビューからデータレイヤーに直接アクセスしてこれらのモデルを操作するのは間違っていると思います. 「私のモデル」でモデルレイヤーを作成し、ダルのモデルを私のモデルに変換すると...重複したコードになります.

おそらく私は何か間違っていますが、ほとんどの例です。コードファーストのアプローチを採用しており、これを理解することはできません。

4

4 に答える 4

3

プレゼンテーション層から直接 DAL のモデルにアクセスしないという考えは正しいです。

DAL オブジェクトをビューで使用されるモデルに変換するときにコードの重複を避けるために、AutoMapperのようなものを使用できます。これは、まさにそのシナリオで重労働を行うことになっています。

于 2013-09-13T15:13:31.760 に答える
2

これらのモデルを操作するためにビューから直接データレイヤーにアクセスするのは間違っていると思います...

そうです、適切な方法は使用していますView Model

ビューに渡す個別の値が多数ある場合、新しいエントリをすばやく追加したり、既存のエントリの名前を変更したりできるのと同じ柔軟性が最悪の敵になります。Microsoft IntelliSense やコンパイラからは何の助けも得られません。 ソフトウェアの複雑さに対処する唯一の実証済みの方法は、適切な設計によるものです。したがって、ビューごとにオブジェクト モデルを定義すると、そのビューが実際に必要とするものを追跡するのに役立ちます。アプリケーションに追加するビューごとにビューモデル クラスを定義することをお勧めします

-- Dino Esposito による「Microsoft ASP.NET MVC のプログラミング」

ViewModel は、ビューを作成するために必要なすべての情報を提供します。ViewModel とビジネス エンティティからデータを転送するには、AutoMapperを使用できます。

重複について心配する必要はありません。これらは 2 つの異なる概念であり、互いに分離する必要があります。アプリケーションの保守が容易になります。

于 2013-09-13T19:25:33.160 に答える
0

ローカル プロジェクトでビュー モデルを使用し、他のプロジェクトでモデルを使用しています。次に、ビューモデルのページで使用するモデルへの参照を配置します。次に、私のページでビューモデルを参照します。それがあなたがやりたいことのように聞こえるかどうか教えてください。コードを編集できます。

于 2013-09-13T14:28:42.470 に答える