2012-02-22 12 views
0

私はC#やカミソリでのASP.NET MVC3アプリケーションを開発しています。アプリケーションのアーキテクチャは、データアクセスレイヤ(EFクラス+リポジトリ)、サービスレイヤ、コントローラ、ViewModels、およびViewに分かれています。方法Product GetProduct(id)からAutomapperを使用して2つの異なるクラスを1つのViewModelにマップする方法は?

  1. 、ビューから

  2. に表示される製品に関するすべての情報が含まれていProductオブジェクト:私は私のサービス層から取得したコントローラで

    メソッドFilter GetFilter()Filterオブジェクトは、ドロップダウンリストなどから選択されるような検索フィルタのリストなど、すべての情報を含みます。

は今、私はAutoMapperを使用している場合どのように私はSelectProductViewModelクラスでこれらの情報をマッピングすることができますか?

public class SelectProductViewModel 
{ 
    public Product ProductToDisplay { get; set; } 
    public Filter SearchFilter { get; set; } 
} 

答えて

1

AutoMapperは、単一の送信元タイプから単一の送信先タイプへのマッピングに使用されます。この文脈では使用できません。おかげ

var model = new SelectProductViewModel 
{ 
    ProductToDisplay = service.GetProduct(id), 
    SearchFilter = service.GetFilter() 
}; 
+1

:だから、のような単純なものでした!それはこのケースでは動作しませんので、私はまだあなたが単調な仕事を減らし、POCOまたはDTOへのオブジェクトからプロパティをコピーする必要があるときAutomapperが値を持っているアプリケーション – CiccioMiami

+1

にautomapperを与えるかもしれない付加価値をどの理解していません。これはその目的であり、その目的にのみ使用する必要があります。あなたは 'オブジェクトViewModel's'オブジェクトを意味すると述べた – MikeSW

+0

@MikeSw、? 'POCO'はドメインモデルか実在のモデルなのか? – stom

関連する問題