1

現在のプロジェクトでは、ViewModelEntityFrameworkからのオブジェクトを取り込むためのさまざまなアプローチを実験しています。現在、リストを受け取ったらEntityModel、拡張メソッドを使用します。

public static IEnumerable<ViewModel> GetViewModel(this IEnumberable<EntityModel> data){}

この拡張メソッドは、オブジェクトと同じ名前空間で定義され、ASP.NETMVCのおよび特定のコントローラーにViewModel密接に関連付けられています。ViewModel

具体的には、開発コミュニティからのフィードバックを求めています。

  • これは、拡張メソッドを使用するのに適した場所ですか。それはOOPからの脱却のようであり、より多くの「バンドエイド」ソリューションであるため、私たちは懸念しています。
  • ViewModelオブジェクトからオブジェクトを取り込む「試行およびテスト済み」の方法とは何ですかEntityModel。私たちは以下を試しました:
    • コントローラの各フィールドを手動で割り当てる(ビューとコントローラ間の結合が多すぎる)
    • Entity /ViewModelオブジェクトをViewModelコンストラクターに渡す(これまでのところ最良ですが、ViewModelはEntityに結合されています)

提案/ヘルプを事前に感謝します。

4

1 に答える 1

2

EntityModelとViewModelの間のマッピングをどちらからも切り離すことをお勧めします。マッピング配管がビューに結合されている場合、将来、別の目的で新しいビューにドロップすることは困難です。EntityModelに関連付けられている場合、同じビューを使用して新しいエンティティモデルをドロップすることは困難です。いずれにせよ、マッピングインフラストラクチャがどちらかに関連付けられている場合、ビューモデルとエンティティモデルを独立して進化させることはより困難です。

マッピングは独立したアーキテクチャの構成要素である必要があり、さらにそのコンポーネントの実装としてAutoMapperを検討することをお勧めします。

http://automapper.codeplex.com/

于 2012-11-12T20:43:50.363 に答える