如何使用Automapper将两个不同的类映射到一个ViewModel中?

时间:2012-02-22 10:21:54

标签: asp.net-mvc-3 viewmodel automapper

我正在用C#和Razor开发一个ASP.NET MVC3应用程序。应用程序的体系结构分为数据访问层(EF类+存储库),服务层,控制器,ViewModel和View。

在我从服务层获取的控制器中:

  1. 从方法Product GetProduct(id)Product对象,其中包含有关要在视图中显示的产品的所有信息

  2. 从方法Filter GetFilter()一个Filter对象,其中包含用于搜索过滤器的所有信息,例如从下拉列表中选择的产品列表等......

  3. 现在,如果我使用AutoMapper,我如何在SelectProductViewModel类中映射这些信息?

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

1 个答案:

答案 0 :(得分:1)

AutoMapper用于将单个源类型映射到单个目标类型。您无法在此上下文中使用它。所以它可以很简单:

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