2011-09-09 5 views
2

私は私のglobal.asaxでのコード行を持ってAutomapper正常に動作しない

Mapper.CreateMap<Order, OrderDTO>(); 

これらは私のクラスは

Customer cust = new Customer { Name = "Jaggu" }; 

Order order = new Order { Customer = cust, OrderId = 123 }; 

OrderDTO dto = Mapper.Map<Order,OrderDTO>(order); 

私のdtoにはOrderIdが含まれていますが、Nameはnullです。ドキュメントあたりとして、それは動作するはずです:

https://github.com/AutoMapper/AutoMapper/wiki/Flattening

私はこれに私のGlobal.asaxのマッピングを変更した場合:

Mapper.CreateMap<Order, OrderDTO>().ForMember(dest => dest.Name, 
     mapping => mapping.MapFrom(order => order.Customer.Name)); 

それは働きます!これは私を好奇妙にする。ドキュメントが間違っていますか?それとも間違っているのですか?

答えて

5

あなたは標準の命名規則に従う場合は動作します:プロパティはCustomerNameなくNameと呼ばれていることを

public class OrderDTO 
{ 
    public int OrderId { get; set; } 
    public string CustomerName { get; set; } 
} 

お知らせ。 OrderモデルをDtoにフラット化する場合、Customer.NameCustomerNameになります。

+0

右。私はその文書を読んでいなかった:( – Jaggu

関連する問題