我是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));