【发布时间】:2012-03-12 18:47:36
【问题描述】:
我有以下两个类:
public class Module
{
public int Id { get; set; }
public string Name { get; set; }
public string ImageName { get; set; }
public virtual ICollection<Page> Pages { get; set; }
}
public class ModuleUI
{
public int Id { get; set; }
public string Text { get; set; }
public string ImagePath { get; set; }
public List<PageUI> PageUIs { get; set; }
}
映射必须是这样的:
Id -> Id
Name -> Text
ImageName -> ImagePath
Pages -> PageUIs
如何使用 Automapper 做到这一点?
【问题讨论】:
-
没有 AutoMapper 你可以写:
new ModuleUI {Id = module.Id, ImagePath = module.ImageName, PageUIs = new List<PageUI>(module.Pages.Cast<PageUI>())}; -
很抱歉将此作为答案发布,我更愿意将其作为对解决方案的评论,但由于声誉低于 50,我不能。选定的解决方案工作得很好,谢谢!但我一直在想一件事:我通常按照实体将多个配置文件上的映射分开。因此,在这里我将有一个带有 Module 到 ModuleUI 映射设置的 ModuleProfile 和一个带有 Page 到 PageUI 映射设置的 PageProfile。在这种情况下,你会怎么做?你还包括 - Mapper.CreateMap
(); - 在 ModuleProfile 上?
标签: c# .net c#-4.0 automapper automapper-2