Есть два шага.
1) Определить сопоставление с помощью AutoMapper (это обычно делается в каком-либо загрузчике, называемом Global.asax и т. Д.)
// since all of your properties in Project match the names of the properties
// in ProjectStuff you don't have to do anything else here
Mapper.CreateMap<Project, ListProjectsViewModel.ProjectStuff>();
2) Сопоставьте объект в вашем контроллере:
// Get a list of projects of type IEnumerable<Project>
var projects = m_ProjectBusiness.GetProjects();
// Prepare a view model from the above domain entity
var viewModel = new ListProjectsViewModel
{
SomeProjects = Mapper.Map<IEnumerable<Project>, IEnumerable<ListProjectsViewModel.ProjectStuff>>(projects)
};
return View(viewModel);
Здесь следует отметить, что вы определяете отображение между Project и ProjectStuff.То, что вы пытаетесь сопоставить, это список проектов (IEnumerable) со списком ProjectStuff (IEnumerable).AutoMapper может сделать это автоматически, поместив это в общие аргументы, как я делал выше.Ваша модель представления, которую использует ваше представление, оборачивает ваш список ProjectStuff, поэтому я просто создаю новый ListProjectsViewModel и выполняю сопоставление внутри него.