Automapper创建具有多对多关系的新行

时间:2015-10-19 13:24:23

标签: c# automapper

使用automap映射多对多的关系。

考虑以下示例

public class Customer
{
    public string FirstName{get;set;}
    public string LastName{get;set;}
    public int age{get;set;}
    public List<Details> Details {get;set;}
}

public class Details
{
    public int ID{get;set;}
    public string Designation{get;set;}
}

我想将上述实体自动化为新的DTO对象,如

public class CustomerDto
{
    public string FirstName{get;set;}
    public string LastName{get;set;}
    public int age{get;set;}
    public int ID{get;set;}
    public string Designation{get;set;}
}

因此,客户详细信息列表中的所有条目都应被视为customerDTO的新行。怎么做?

1 个答案:

答案 0 :(得分:1)

因此,您有Customer个对象,并希望将其映射到List<CustomerDto>。此类列表将包含Customer对象中每个详细信息的单个项目。

这是一种方法:

首先,创建两个映射,一个映射从CustomerCustomerDto,另一个映射从DetailsCustomerDto

AutoMapper.Mapper.CreateMap<Customer, CustomerDto>();
AutoMapper.Mapper.CreateMap<Details, CustomerDto>();

现在,假设您在变量Customer中有一个customer对象,您可以执行以下操作:

List<CustomerDto> dtos = AutoMapper.Mapper.Map<List<CustomerDto>>(customer.Details);

foreach (var dto in dtos)
{
    AutoMapper.Mapper.Map(customer, dto);
}