Я все еще участвую в MVC, и мне недавно предложили взглянуть на использование AutoMapper для отображения моего ViewModel. Итак, я начал тест, но я не понимаю, как сопоставить два объекта, и я не могу найти пример.Не удалось добавить второй объект в ViewModel с Automapper?
У меня есть таблица Person и таблица адресов. Я хочу объединить их в ViewModel, чтобы перейти к моему представлению. Глядя на примеры, они всегда показывают, как сопоставить одну сущность, но не две.
В следующем коде я вижу, что оба объекта currentPerson и currentAddress заполняются данными с помощью отладчика, но тогда моя текущая модель ViewModel имеет только данные Person. Это имеет смысл, потому что я использую Mapper.Map для Person, но как я могу сообщить текущему члену о карте адреса?
public ActionResult Edit(int id = 0)
{
using (DataContext db = new DataContext())
{
Person currentPerson = db.Person.Find(id);
Address currentAddress = db.Address.Single(a => a.PID == id);
AutoMapper.Mapper.CreateMap<Person, AdminViewModel>();
AutoMapper.Mapper.CreateMap<Address, AdminViewModel>();
MemberViewModel currentMember = AutoMapper.Mapper.Map<AdminViewModel>(currentPerson);
return View(currentMember);
}
}
Как насчет того, как вы создаете два свойства в 'AdminViewModel', а затем сопоставляете их по отдельности? –
Это то, что я делал изначально, и именно тогда мне предложили использовать Automapper, чтобы не было необходимости вручную отображать свойства. – Caverman
да и, честно говоря, я так делаю все время. Когда вы их сопоставляете отдельно, назначьте их вручную, чтобы просмотреть модель –