Как сопоставить два разных класса в одну ViewModel с Automapper? - PullRequest
0 голосов
/ 22 февраля 2012

Я занимаюсь разработкой приложения ASP.NET MVC3 на C # и Razor. Архитектура приложения разделена на уровень доступа к данным (классы EF + репозиторий), уровень обслуживания, контроллер, ViewModels и View.

В контроллере, который я получаю от моего уровня обслуживания:

  1. Из метода Product GetProduct(id), объект Product, который содержит всю информацию о продукте, отображаемую в представлении

  2. Из метода Filter GetFilter() a Filter объект, который содержит всю информацию, используемую для поискового фильтра, такой список товаров, который будет выбран из выпадающего списка, и т. Д ...

Теперь, если я использую AutoMapper, как я могу отобразить эту информацию в SelectProductViewModel классе?

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

1 Ответ

1 голос
/ 22 февраля 2012

AutoMapper используется для сопоставления между одним типом источника и одним типом назначения. Вы не можете использовать его в этом контексте. Так что это может быть так просто, как:

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