Automapper map嵌套集合

时间:2014-03-11 12:29:20

标签: automapper

我是Automapper的新手,并努力让自定义映射工作。我正在使用1.1,因此它适用于.net 3.5。

基本上,我想为我的DTO创建一个列表,该列表是使用父模型的列表类中包含的一个子类构建的。

下面应该更好地说明我的意思:

public class RedCar
{
public string Name{get;set;}
public List<RedCarPart> RedCarParts(get;set;}
}

public class RedCarPart
{
public string RedCarSerial{get;set;}
public CarPart Carpart {get;set;}
}

public class CarPart
{
public int PartID {get;set;}
public string Description {get;set;}
}

public class CarDTO
{
public string name{get;set;}
public List<CarPartDTO> carparts{get;set;}
}

public class CarPartDTO
{
public int PartID {get;set;}
public string description {get;set;}
}

我不需要RedCarPart中提供的额外信息,所以我只需要一个CarParts列表。

我知道我可以复制RedCarPartDTO,并忽略我不需要的字段,而不是将其传递给客户端,我觉得最好是看看我是否可以映射一个CarParts列表。 / p>

我认为它必须与地图相关,但我在如何做到这一点时遇到了麻烦:

 Mapper.CreateMap<RedCar, CarDTO>()
            .ForMember(s => s.CarParts, c => c.MapFrom(m => m.RedCarParts));

        Mapper.CreateMap<RedCarPart, CarPartDTO>()
       .ForMember(s => s.PartID, c => c.MapFrom(m => m.CarPart.PartID))
        .ForMember(s => s.Description, c => c.MapFrom(m => m.CarPart.Description));

0 个答案:

没有答案