如何使用自动映射器来映射模型和视图模型之间的父子关系


public class fooViewModel{
public int id {get; set;}
public string companyname {get; set;}
public string companyaddress {get; set;}
public EmployeeViewModel CotactPerson  {get; set;} 
public EmployeeViewModel Manager {get; set;} 
}
public class EmployeeViewModel {
public int id {get; set;}
public string employeename {get; set;}
public string mobile {get; set;}
}

public class Boo {
public int id {get; set;}
public string name{get; set;}
public string address {get; set;}
public Icollection<Employee> Employee {get; set;}
}

public class Employee
{
public int id {get; set;}
public int fooid {get; set;}
public foo foo {get; set;}
public int Booid {get; set;}
public string employeename {get; set;}
public string mobile {get; set;}
public datetime DateOfBirth {get; set;}
public string PlaceOfBirth{get; set;}
}

public class foo {
public int id {get; set;}
public string companyname {get; set;}
public string companyaddress {get; set;}
public string Email{get; set;}
public DateTime EstablismentDate{get; set;}
}

我想映射我的fooViewModel有子对象Boo模型使用automapper,反之亦然,从Boo模型到fooViewModel。请帮助我如何才能实现这种情况。如果有其他简单的方法将视图模型映射到域模型,域模型映射到视图模型,请解释一下

我假定您已经知道如何连接AutoMapper。然后配置看起来像这样:

Mapper.CreateMap<fooViewModel, Boo>()
    .ForMember(d => d.name, o => o.MapFrom(s => s.companyname))
    .ForMember(d => d.address, o => o.MapFrom(s => s.companyaddress))
    .ForMember(d => d.Employee, o => o.MapFrom(s => new Collection<EmployeeViewModel> { s.CotactPerson, s.Manager }));
Mapper.CreateMap<EmployeeViewModel, Employee>();

var boo = Mapper.Map<Boo>(fooViewModelObject);

最新更新