Карта ViewModel / частичные с AutoMapper - PullRequest
2 голосов
/ 25 января 2010

Я создал модель презентации и хочу отобразить ее (с помощью AutoMapper) в ViewModel.ViewModel является составной / потому что я использую партиалы, и я хочу повторно использовать, например, KeyboardsViewModel и в других представлениях / партиалах.

Как я могу отобразить (настроить отображение) эту модель представления в ViewModel?Это правильный подход?

Спасибо!

public class MainPresentationModel : BasePresentationModel
{
  // Should map into the MainViewModel.Keyboards.Keyboards
  public int DefaultKeyboard { get; set; }
  // Should map into the MainViewModel.Keyboards.DefaultKeyboard
  public IList<Keyboard> Keyboards { get; set; }
  // Should map into the MainViewModel.Something
  public string Something { get; set; }
}

public class MainViewModel : BaseViewModel
{
  public KeyboardsViewModel Keyboards { get; set; }
  public string Something { get; set; }
}

public class KeyboardsViewModel
{
  public int DefaultKeyboard { get; set; }
  public IList<Keyboard> Keyboards { get; set; }
}

Отредактировано: после попытки я думаю, что это один из вариантов:

        Mapper.CreateMap<MainPresentationModel, MainViewModel>()
            .ForMember(d => d.Keyboards, opt => opt.MapFrom(src => src));
        Mapper.CreateMap<MainPresentationModel, KeyboardsViewModel>();

Кажется, что это работает, но я не уверен, что это оптимальный / правильный путь ...

1 Ответ

0 голосов
/ 25 января 2010

Этот способ определенно работает. Вы также можете использовать интерфейсы для этих составных интерфейсов. Например, частичное может принимать IKeyboardsViewModel, и тогда вам не придется беспокоиться о сложных иерархиях наследования. Затем вы можете просто дать каждому фрагменту часть основной модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...