sim*_*neL 2 c# inheritance automapper
我正在使用AutoMapper。
我在映射集合时遇到了一些问题。这是简化的结构。
public class A
{
}
public class B : A
{
}
public class C : A
{
}
public class Origin
{
public List<A> Entities {get; set;}
}
/********************/
public class A2
{
}
public class B2 : A2
{
}
public class C2 : A2
{
}
public class Destination
{
public List<A2> Entities {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
Origin 类具有 A 对象的集合,其中填充了 A、B 或 C 实例。
我想将 Origin 映射到 Destination,所以我添加了这个配置:
Mapper.CreateMap<C, C2>();
Mapper.CreateMap<B, B2>();
Mapper.CreateMap<A, A2>();
Run Code Online (Sandbox Code Playgroud)
问题是当Origin中的Entities集合映射到Destination中的集合时,所有的对象都只映射到A2实体。相反,我希望将 B 和 C 实体转换为 B2 和 C2 实体。
有什么建议可以实现这一目标吗?
您也需要使用Include.
Mapper.CreateMap<C, C2>();
Mapper.CreateMap<B, B2>();
Mapper.CreateMap<A, A2>().Include<B, B2>().Include<C, C2>();
Run Code Online (Sandbox Code Playgroud)
更多:映射继承