2012-06-27 51 views
1

iwant映射模型的集合視圖模型與automapper 到視圖模型,這是我的代碼地圖模型的集合與automapper

public class LanguageViewModel 
    { 
     public string Name { get; set; } 
     public IList<Word> Categories { set; get; } 
     public IList<string> PictureURL { set; get; } 
    } 

,這我開始與模型

public class Word : BaseFieldsTables 
{ 
    public string Text { get; set; } 
    public virtual Category Category { get; set; } 
    public int CategoryID { get; set; } 
    public virtual Language Language { get; set; } 
    public int LanguageID { get; set; } 

    public virtual ICollection<Picture> Pictures { get; set; } 

    [InverseProperty("MainWord")] 
    public virtual ICollection<RelationshipBetweenWords> MainWords { get; set; } 

    [InverseProperty("RelatedWord")] 
    public virtual ICollection<RelationshipBetweenWords> RelatedWords { get; set; } 
} 
+0

你能澄清所需的測繪工作的所有剩餘的內部集合?像Word.Language.Name - > LanguageViewModel.Name – k0stya

+0

@Mohammad,你試過我的答案嗎? –

回答

1

Fot的他的榜樣頂層域模型,並將其映射到名爲Nested mappings的內部集合。

mapper.CreateMap<Word , LanguageViewModel>()     
    .ForMember(dest => dest.Name, src => src.MapFrom(s => s.Text)); 

對於Word領域模型中的內部集合,您需要爲類別和圖片定義單獨的映射。

mapper.CreateMap<Picture, PictureModel>()     
    .ForMember(dest => dest.PictureURL , src => src.MapFrom(x => x.Picture.Urltext)); 

mapper.CreateMap<Category, CategoryModel>()     
    .ForMember(dest => dest.CategoryId, src => src.MapFrom(x => x.Category.CategoryInt)); 

,併爲您需要定義映射,使之