2016-08-04 19 views
0

ですName = "myList"options = myProductsは、私は以下の持っている私のソースリスト

var myProducts = new List<Product>(); 
myProducts (new Product { Id = 1, Name = "Apple" }); 
myProducts (new Product { Id = 2, Name = "Banana" }); 
myProducts (new Product { Id = 3, Name = "Pear" }); 

は、私は次のことを生成するためにLookupDTOにこれをマッピングするLookupDTO

LookupDTO 
    Name: "myList" 
    options: [ { id:1, val:"1 - Apple" }, { id:2, val:"2 - Banana" }, { id:3, val:"3 - Pear" } } 

私はこのフォームにどのようにマップできますか?

答えて

0

私はこれを分割し、1つのスーパーマップでは実行しません。

まず、ProductProductDTO間マッパー設定を追加:

var config = new MapperConfiguration(cfg => 
{ 
    // whatever other configurations you may have 
    cfg.CreateMap<Product, ProductDTO>().ForMember(
     product => product.Val, 
     opts => opts.MapFrom(dto => dto.Name)); 
}); 

そして、マッパーとそのプロパティをマッピング:

var result = new LookupDTO() 
{ 
    Name = "myList", 
    options = mapper.Map<IEnumerable<ProductDTO>>(myProducts) 
}; 
関連する問題