У меня есть вложенная модель представления, похожее на это:Как Automapper работает от вложенной модели до плоской модели?
public class EmployeeViewModel
{
//...
public string EmployeeFirstName { get; set; }
public string EmployeeLastName { get; set; }
public AddressViewModel{ get; set; }
}
AddressViewModel выглядит следующим образом:
public class AddressViewModel
{
public string Street {get; set;}
public string City {get; set;}
public string State {get; set;}
public string Zip {get; set;}
}
Тогда, есть служащий объект домена следующим образом:
public class Employee
{
public string EmployeeFirstName { get; set; }
public string EmployeeLastName { get; set; }
public string Street { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
}
I 'm пытается сопоставить EmployeeViewModel с объектом домена Employee. Это то, что я придумал, и она работает, но мне было интересно, если есть более простой способ сделать это:
Mapper.CreateMap<EmployeeViewModel, Employee>().ForMember(destination => destination.Street, opt => opt.MapFrom(src => src.AddressViewModel.Street))
.ForMember(destination => destination.City, opt => opt.MapFrom(src => src.AddressViewModel.City))
.ForMember(destination => destination.State, opt => opt.MapFrom(src => src.AddressViewModel.State))
.ForMember(destination => destination.Zip, opt => opt.MapFrom(src => src.AddressViewModel.Zip));
Как вы можете видеть, имена свойств в объекте домена Employee и AddressViewModel являются одна и та же. Таким образом, кажется, что должен быть более простой способ сделать это.
Благодаря
Это должно быть отмечено как ответ. Идеально подходит. Я не знал, как это работает, и он решил аналогичную проблему, с которой я столкнулся. – julealgon