我有一个课程(比下面定义的更多的字段,但你得到了基本的想法):
public class Embedded
{
public int Field1{get;set;}
}
public class Source
{
public int Field2{get;set;}
public Embedded Embedded{get;set;}
}
public class Destination
{
public int Field1{get;set;}
public int Field2{get;set;}
}
通常的做法是:
Mapper.Initialise(cfg=>
{
cfg.CreateMap<Source, Destination>(dest=>dest.Field1, opt=>opt.MapFrom(src=>src.Embedded.Field1));
}
My Embedded对象有很多字段(我有多个嵌入对象),它们会按照约定映射到Destination对象中的字段。
我需要类似IncludeBase&lt;&gt;提供的功能。但是能够指定哪个字段应该用作src。
有更简单的方法吗?
答案 0 :(得分:0)
我找到了Map&lt;,&gt;(s,d)和AfterMap:
Mapper.Initialize(cfg=>{
cfg.CreateMap<Embedded, Destination>();
cfg.CreateMap<Source, Destination>()
.AfterMap((s,d) {
Mapper.Map(s.Embedded, d);
}
});
var src = new Source{
Embedded = new Embedded();
}
var dest = Mapper.Map<Source, Destination>(src);