2014-11-05 71 views
0

我對Automapper有疑問。這是我用例: 我有這些類:Automapper - 地圖嵌套屬性

經營業務:

public class Item 
{ 
    public NestedItem NestedItem{get;set;} 
} 

public class NestedItem 
{ 
    public string Name{get;set;} 
} 

視圖模型:

public class ItemViewModel 
{ 
    public string NestedItemName{get;set;} 
} 

當我想項目映射到ItemViewModel。自動映射器地圖屬性NestedItem.Name到正確。 但以相反的方式,它不起作用。映射不會更改NestedItem.Name的值。

+0

[Automapper map into nested class]的可能重複(http://stackoverflow.com/questions/7924185/automapper-map-into-nested-class) – 2014-11-06 02:30:42

回答

0

我對上面提到的鏈接有一個稍微矛盾的答案,也許我只是用尷尬的方式去討論我的事情,但我相信你可以在一張地圖內做到這一點。例如:

Mapper.CreateMap<ItemViewModel, Item>() 
    .ForMember(dest => dest.NestedItem, opt => 
     opt.MapFrom(src => new NestedItem(src.NestedItemName)); 

現在當然這需要您創建一個新的構造函數或添加一個空構造函數並使用大括號。

由於AutoMapper是一個非常複雜的怪物,我無法評論其性能。然而,這應該做的伎倆。