Я использую AutoMapper
для сопоставления моей модели предметной области и модели представления и наоборот.
Я обычно делаю свои отображения следующим образом в моем контроллере:
// Mapping
Tutorial tutorial = (Tutorial)tutorialMapper.Map(viewModel, typeof(TutorialEditViewModel), typeof(Tutorial));
Мой учебный класс по отображению для обработки вышеупомянутого:
public class TutorialMapper : ITutorialMapper
{
static TutorialMapper()
{
Mapper.CreateMap<TutorialCreateViewModel, Tutorial>();
Mapper.CreateMap<TutorialEditViewModel, Tutorial>();
Mapper.CreateMap<Tutorial, TutorialEditViewModel>();
}
public object Map(object source, Type sourceType, Type destinationType)
{
return Mapper.Map(source, sourceType, destinationType);
}
}
Я пытаюсь сократить свой способ отображения между списками. В настоящее время я делаю это так:
IEnumerable<Tutorial> tutorialsList = tutorialService.GetAll();
IEnumerable<TutorialListViewModel> tutorialListViewModels =
from t in tutorialsList
orderby t.Name
select new TutorialListViewModel
{
Id = t.Id,
Name = t.Name,
IsActive = t.IsActive
};
Можно ли отобразить это как-то так?
Я знаю, что AutoMapper поддерживает отображение списков, но как бы я внедрил его в свой сценарий?
Я также попробовал следующее:
IEnumerable<Tutorial> tutorialsList = tutorialService.GetAll();
IEnumerable<TutorialListViewModel> tutorialListViewModels = (IEnumerable<TutorialListViewModel>)tutorialMapper.Map(tutorialsList, typeof(IEnumerable<Tutorial>), typeof(IEnumerable<TutorialListViewModel>));
Но если в tutorialsList нет элементов, я получаю следующую ошибку:
{"The entity type Tutorial is not part of the model for the current context."}