我有一个实体对象,以及在我的应用程序的服务层中用作返回类型的DTO对象。我想使用AutoMapper将实体对象映射到DTO对象,反之亦然。我的一种类型,要执行映射,需要一些外部类来执行(即为某些字符串属性提供翻译)。有没有方便的方法在AutoMapper中执行此操作?
答案 0 :(得分:0)
如果我理解你是对的,那么这个例子就是你想要做的。 基于源属性,AutoMapper将外部转换映射到目标属性。
Dictionary<int, string> translations = new Dictionary<int, string>();
translations.Add(0, "Translation 0");
translations.Add(1, "Translation 1");
translations.Add(2, "Translation 2");
Mapper.Initialize(cfg =>
{
cfg.CreateMap<Class1, Class2>().ForMember(a => a.Translation, b => b.MapFrom(c => translations[c.Id]));
});
Class1 src = new Class1()
{
Id = 1
};
Class2 dest = Mapper.Map<Class1, Class2>(src);
简单的类结构:
public class Class1
{
public int Id { get; set; }
}
public class Class2
{
public int Id { get; set; }
public string Translation { get; set; }
}